Matlab - Lectura de archivo .txt con datos exponenciales

 
Vista:
sin imagen de perfil

Lectura de archivo .txt con datos exponenciales

Publicado por Juan Antonio (2 intervenciones) el 03/12/2013 05:19:46
Buenas noches.

Tengo un archivo de texto (.txt) con datos en 3 líneas, la primera es un número entero mientras que las siguientes dos líneas son una serie de números (varian entre 1500 y 2000) en formato exponencial como sigue:

2000000000.0
2.594e-20 2.968e-05 3.031e-05 -1.756e-05 ...........
-9.945e-21 -1.138e-05 -2.042e-05 4.073e-06 ...............

La idea es asignar el primer número a una variable Fs y las dos líneas siguientes a los vectores A y B. Para lo primero no he tenido problema utilizando la función fscanf.

Sin embargo, al utilizar la misma función para los vectores me he encontrado con el problema de que únicamente lee el valor decimal hasta 5 digitos, y elimina el resto, por lo que casi todos los valores se vuelven cero.

Espero que me puedan apoyar con éste problema. De antemano gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Lectura de archivo .txt con datos exponenciales

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 04/12/2013 03:42:33
Tendría que ver hasta que punto haz llegado en tu código, para sugerirte que debas hacer. Claro que podría hacerte un código completo, pero lo mas importante que tu mismo lo hagas, te podemos ayudar a filtrarte los errores de tus códigos, o darte ideas para que sigas con tu código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Lectura de archivo .txt con datos exponenciales

Publicado por Juan Antonio (2 intervenciones) el 04/12/2013 05:37:30
Claro, aunque en realidad ésto sería el principio del código, ya que necesito estos datos para posteriormente manipularlos.

Lo que tengo es lo siguiente:

>> clear all
>> fid = fopen('TDC.txt', 'r')

fid =

3

>> Fs = fscanf (fid, '%d')

Fs =

2.0000e+009

>>

Hasta aquí esta todo bien, sin embargo en la siguiente línea es donde tengo problemas:

>> [A] = fscanf(fid, '%e')

Aquí es donde me aparecen los datos, pero truncados hasta 5 dígitos (1 entero y cuatro decimales). También he intentado con el atributo %d, %f y %g pero con ninguno he obtenido resultados.

Intenté con ésta otra alternativa:

[A] = fgetl(fid)

La cuál sí lee los valores, pero los toma como caracteres por lo cual emplee la instrucción:

[A] = str2num(A)

Pero me arroja el mismo resultado que lo anterior.

Gracias por su respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Lectura de archivo .txt con datos exponenciales

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 05/12/2013 10:57:40
1
2
3
4
5
6
7
8
9
clear all
 clc
 format longe
 fid = fopen('TDC.txt','r')
 Fs= fgetl(fid)
 A = fgetl(fid)
 B = fgetl(fid)
 fclose(fid)
 whos


Adaptar a tu necesidad.

Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar