Matlab - Leer archivo texto formato TM2 sin delimitador col

 
Vista:

Leer archivo texto formato TM2 sin delimitador col

Publicado por Leo (6 intervenciones) el 15/01/2010 17:02:50
Hola a todos,

Necesito obtener alguna solución para leer un archivo de texto con formato TM2, es un formato de texto con la primera línea como cabecera y debajo 8000 filas, con la particularidad de que las columnas no estan separadas por ningún elemento, tal que así,

23230 -11 N 21 58 E 159 41 7
95010101000000000000
95010102000000000000
95010103000000000000
95010104000000000000
95010105000000000200
95010102000000000450
95010103000000000630
95010104000000000750
95010105000000001100
....
....

en este caso obviando la cabecera los datos para la fila 2 serían los siguientes,

digitos 1 y 2 = año --> 95
3-4 = mes --> 01
5-6=dia --> 01
7-8=hora --> 01
9-16 = parametros meteorologicos
etc..

Lo he intentado con textscan pero no logro ver como se indica que no tienes separadores de columnas

gracias por vuestra atención
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

RE:Leer archivo texto formato TM2 sin delimitador

Publicado por Jorge (226 intervenciones) el 16/01/2010 01:32:03
Esta función leería el archivo que se llame 'meteoro.txt', descarta la primera línea, y los datos los pone en el cell-array R

function R = get_meteoro()
d = fopen('meteoro.txt');
R = textscan(d, '%s ', 'headerLines', 1);
fclose(d);

Desde otro script, usarías la función así:

R = get_meteoro();

OK, ya tienes los datos útiles en R.
Si pides R{1}, te da los datos en bloque, de todos los renglones.

Esto leería el primer renglón, y lo convierte a matriz de 'strings'
Rs = cell2mat(R{1}(1))

Esto te da los primeros 4 caracteres del string, para año y mes
a = Rs(1:2)
m = Rs(3:4)

etc.

Tienes que desglosar todos tus campos. Recuerda que tienes 'strings', no números.

Saludos,
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

RE:Leer archivo texto formato TM2 sin delimitador

Publicado por Leo (6 intervenciones) el 19/01/2010 10:00:16
Hola Jorge, lo he probado y funciona, muchas gracias por las molestias.

Respecto a lo que yo intentaba, si mi formato es el que defino, porque solo me recoge la primera fila (obviando la cabecera):

d = fopen('1.tm2');
R = textscan(d, '%2d%2d%2d%2d%4d%4d%4d%1s%1d%4d%1s%1d%4d%1s%1d%4d%1s%1d%4d%1s%1d%4d%1s%1d%4d%1s%1d%2d%1s%1d%2d%1s%1d%4d%1s%1d%4d%1s%1d%3d%1s%1d%4d%1s%1d%3d%1s%1d%3d%1s%1d%4d%1s%1d%5d%1s%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%3d%1s%1d%3d%1s%1d%3d%1s%1d%2d%1s%1d ', 'headerLines', 1);
fclose(d);

No obstante creo que tu solución me valdría.

Gracias de nuevo, un saludo.
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