SoloCodigo

Programación Específica => Matlab => Mensaje iniciado por: meco_cl en Domingo 4 de Octubre de 2009, 12:47

Título: Lectura txt con fscanf
Publicado por: meco_cl en Domingo 4 de Octubre de 2009, 12:47
Bueno primero, hola a todos, tengo un documento que presenta el siguiente formato (ejemplo):

prueba 345 788 auto
1 3 4 5 6
2 3 4 5 6
5 6 3 8 1
6 3 7 9 0

el problema es que no se de que tamaño sera la matriz que se aprecia desde la segunda fila, podria ser mayor o menor, y necesito cargarla en una variable sin modificar el documento. el script que llevo hasta ahora es el siguiente:

Código: Matlab M
  1. fid = fopen('prueba.txt', 'r');
  2. texto=fscanf(fid,'%s',1)
  3. xcoor=fscanf(fid,'%f',1)
  4. texto=fscanf(fid,'%f',1)
  5. zcoor=fscanf(fid,'%s',1)
  6.  
  7. a = fscanf(fid,'%f %f',[1 inf])
  8.  

 :oops:  pero con este script me deja la matriz en una sola fila, lo cual no me sirve, espero puedan ayudarme, desde ya gracias
Título: Re: Lectura txt con fscanf
Publicado por: allisap en Viernes 16 de Octubre de 2009, 05:33
Saludos


1 3 4 5 6
2 3 4 5 6
5 6 3 8 1
6 3 7 9 0

 a= fscanf(fid,'%f %f',[1 inf])  
creo que el problema es que tienes 5 columnas así que deberías escribir algo como
 a= fscanf(fid,'%f %f %f %f%f',[5 inf])

saludos.


Victor Pasilla Campos
Título: Re: Lectura txt con fscanf
Publicado por: meco_cl en Lunes 23 de Noviembre de 2009, 14:17
Bueno Victor, disculpa la demora, pero lo que ocurre es que no se que tamaño tendra la matriz, mira como puedo ingresar una letra en las filas de la matriz, es decir que de esto:

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
2 3 4 5 6

quede esto:

a 1 2 3 4 5
a 1 2 3 4 5
a 1 2 3 4 5
a 2 3 4 5 6
 asi podria diferenciar las filas, saludos