Matlab - Leer multiples archivos y Usar nombre como variable

 
Vista:
sin imagen de perfil

Leer multiples archivos y Usar nombre como variable

Publicado por Francisco (18 intervenciones) el 24/08/2015 03:43:54
Hola a todos:

Necesito de ayuda para resolver un problema, tengo una serie de archivos donde el nombre es la fecha y hora, entonces me gustaria leerlos todos y usar el nombre como variable para crear la fecha.

Por ejemplo tengo estos archivos:

20060104_00.txt
20060104_11.txt
20060105_00.txt
20060105_12.txt

Donde el ano, mes, dia y hora componen el nombre. Necesito leerlos y usar el nombre. Lo he intentado pero no lo he logrado.

Saludos y 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 Daniel
Val: 269
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Leer multiples archivos y Usar nombre como variable

Publicado por Daniel (264 intervenciones) el 24/08/2015 19:12:28
Fijate si esto te ajuda, te pide la carpeta el donde estan los archivos txt ( cerciorate que sólo haya txt en esa carpeta). te crea la variable c que tiene toda la info, año dia mes, etc de cada uno y los datos dentro del archivo.

por ejemplo c(3).nombre te dice el nombre del tercer archivo cargado, c(2).mes te devuelve el mes del segundo archivo cargado, etc.
Como no sé que tenes guardados en los archivos txt, posible mente tengas que modificar la linea del textscan para tu caso particular.


1
2
3
4
5
6
7
8
9
10
11
12
13
carpeta=uigetdir;
listing = dir(carpeta);
nfile=size(listing,1);
for a=3:nfile
    fileID = fopen([carpeta '\' listing(a).name]);
    c(a-2).texto = cell2mat(textscan(fileID,'','headerlines',1));
    fclose all;
    c(a-2).nombre = listing(a).name;
    c(a-2).anio = str2num(listing(a).name(1:4));
    c(a-2).mes = str2num(listing(a).name(5:6));
    c(a-2).dia = str2num(listing(a).name(7:8));
    c(a-2).hora = str2num(listing(a).name(10:11));
end


Probalo y comentanos como te fue

Saludos

Daniel
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