• Viernes 1 de Noviembre de 2024, 09:33

Autor Tema:  Problema con la lectura de .txt  (Leído 1277 veces)

Richi254

  • Miembro activo
  • **
  • Mensajes: 56
  • Nacionalidad: es
    • Ver Perfil
Problema con la lectura de .txt
« en: Miércoles 20 de Mayo de 2009, 14:31 »
0
Hola amigos, tengo un problema con la lectura de un archivo .txt que contiene unos datos que necesito manejar. El archivo tiene esta forma.
Ejemplo:

Elemento______ Posición X_____ Posición Y________nombre
______A1 _________3500.0________ 2000.0_________100A
______A2 _________7800.0_________1000.0_________250A
______B1__________1000.0_________5000.0________1000B

_______(esto representa espacios en blanco)

   Lo que necesitaria seria poder guardar en una matriz o vector en la que cada elemento sea el correspondiente al del archivo, por ejempo que matriz(1,1)= 'Elemento', matriz(2.2)=3500.0, etc.

   El problema es que si uso A=importdata('archivo.txt') se guarda de la siguiente forma:
>>A
 'Elemento      Posición X      Posición Y       Nombre'
          'A1           3500.0          2000.0           100A'
          'A2           7800.0          1000.0           250A'
          'B1           1000.0          5000.0          1000B'
es decir que si hago:
>>A(1)
    'Elemento      Posición X      Posición Y       Nombre'

>>A(2)
    'A1           3500.0          2000.0           100A'

   Y si uso:
 [arch, error]=fopen(archivo.txt,'r')
 vector=fscanf(arch,'%c')
 fclose(arch)

   En vector se me guarda todos los elemento pero 1 a 1, es decir, por ejemplo:
>> vector(7)=
t
>>vector(8)=
o
>>vector(9)=
 []

y así sucesivamente, o sea que tiene en cuenta hasta los espacios en blancos. y si en lugar de usar %c en fscanf uso %d ó %f no lee nada, en ambas opciones el resultado es:
>>vector=
 []

   Espero haberlo dejado claro. Si alguién tiene alguna idea de porqué ocurre esto y como lo podría resolver se lo agradecería mucho.
MUCHÍSIMAS GRACIAS DE ANTEMANO.

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema con la lectura de .txt
« Respuesta #1 en: Viernes 22 de Mayo de 2009, 17:46 »
0
Cita de: "Richi254"
por ejempo que matriz(1,1)= 'Elemento', matriz(2.2)=3500.0, etc.

esto no es posible porque quieres que en una sola matriz esten combinados textos y numeros
una matriz debe ser de numeros o de de cadenas pero no combinados

saludos

Victor Pasilla

Richi254

  • Miembro activo
  • **
  • Mensajes: 56
  • Nacionalidad: es
    • Ver Perfil
Re: Problema con la lectura de .txt
« Respuesta #2 en: Lunes 1 de Junio de 2009, 19:24 »
0
Ok, gracias por aclararmelo porque me estaba volviendo loco :)
He hecho un pequeño programita en excel para recoger los datos y hago una llamada desde MATLAB de este modo:

winopen(mi_archivo.xls)
[numeros,caracteres]=xlsread(archivo.xls)


De esta forma aunque al final tengo dos matrices y no una, ambas son del mismo tamaño y se guardan las posiciones de cada elemento, cuando te nos referimos a la matriz numeros, las posiciones en las que hay caracteres queda un 0 y al contrario con la de caracteres.

>>caracteres
caracteres=
'nombre'   'posicionX'   'posicionY'   'Valor'
    'A1'           '__'             '__'           '__'