• Viernes 1 de Noviembre de 2024, 13:29

Autor Tema:  Problema Para Leer Txt  (Leído 3612 veces)

pati.difusa

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Problema Para Leer Txt
« en: Miércoles 2 de Abril de 2008, 16:36 »
0
Hola

Tengo un problema y es que no sé leer un fichero txt en matlab.

El txt contiene los siguientes datos:

MODELO1   1.23   3.8   4
MODELO2   0.35   1.4   4.5
MODELO3   9.87   0.76  1.67

He estado mirando en varios foros y no encuentro solución alguna. Mi nivel de matlab es  bastante básico y me parece complicadísimo leer dato por dato.

He consultado las funciones fgetl, fseek, ftell... pero no me aclaro y necesito leer dato por dato (palabra por palabra) ya que si el usuario elige el modelo 2 tiene unas especificaciones diferentes al modelo1 o modelo3.

Agradecería mucho que me ayudárais.

Muchas gracias y saludos

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Para Leer Txt
« Respuesta #1 en: Jueves 3 de Abril de 2008, 00:21 »
0
Saludos  :D

mira puedes leer usando el fscanf

por ejemplo
Código: Text
  1.  
  2. fid = fopen('control4.txt');  
  3. a = fscanf(fid,'%f %f %f %f',[4 inf]);
  4. tiempo=size(a,2);
  5. columna1=a(1,:);
  6. columna2=a(2,:);
  7. columna3=a(2,:);
  8.  
  9.  


te regresara los datos contenidos en el archivo control4.txt
que en mi caso es un archivo de 4 columnas de datos numéricos
 
espero te sirva

pati.difusa

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema Para Leer Txt
« Respuesta #2 en: Miércoles 9 de Abril de 2008, 17:54 »
0
Muchas gracias allisap, al final lo conseguí utilizando textread ;)

paulao

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Problema Para Leer Txt
« Respuesta #3 en: Viernes 20 de Junio de 2008, 22:30 »
0
Cita de: "pati.difusa"
Muchas gracias allisap, al final lo conseguí utilizando textread ;)
Hola me llamo Paula y soy nueva en el tema de matlab y la lectura de un archivo txt! tambien necesito ayuda!!!!!

Este es el formato de archivo caso1.txt

x : tiempo
N:  de nodos (nod)



              NT11: PI: PART-1-              NT11: PI: PART-1-              NT11: PI: PART-1-
 
 X                   1 N: 1                             1 N: 10                           1 N: 100
 0.                      0.                                    0.                                      0.  
200.E-06             1.                                    1.                                      1.  

 
hice este archivo pero no  funciona bien!!!!!!

fabaqus=fopen('caso1.txt','r');
fgets(fabaqus);
fgets(fabaqus);
line=fgets(fabaqus);
nod=(length(line)-30)/18
fgets(fabaqus);
sline=fgets(fabaqus);
[a,n]=sscanf(sline,'%f');
fclose(fabaqus);



el tema es que yo necesito  leer la cantiaad de N  que no se cuanto es porq para cada archivo varia  y luego tomar los datos a partir de de donde dice x y los valores para luego aplicar otras funciones matematicas.
lo importante es que tuve q generarlo a partir de esa resta para q solo me lea los nodos


alguien podria ayudarme porq este programa no sabe que realice no sabe contar bien la cantidad de nodos que tengo y encima creo q lee hasta una determinada cantidad de datos??
que diferencia hay si escribo fscanf en vez de scanf? quizas ese sea el problema




desde ya muchas gracias!!!!!!!! :rolleyes:

paula

allisap

  • Miembro MUY activo
  • ***
  • Mensajes: 259
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema Para Leer Txt
« Respuesta #4 en: Martes 24 de Junio de 2008, 20:16 »
0
saludos

bueno.. no me  queda muy claro que datos son los que quieres leer de  tu archivo de texto y quiza el problema es que tienes combinadas etiquetas con datos numericos,


lo de leer solo una cantidad determinada de datos, no se en realidad cuantos sean pero yo leido archivos de mas de 5000 datos y no tenido quejas de matlab

tienes que usar el fscanf porque estas leyendo de un archivo (la f indica file)