Matlab - Extraer datos de multiples archivos

 
Vista:

Extraer datos de multiples archivos

Publicado por Gaia (4 intervenciones) el 21/10/2008 16:21:23
Hola,

Tengo que extraer datos de 1213 archivos, cada uno con un nombre y longitud diferente. El formato de los archivos es:

A1
A2
A3 B3
. .
. .
. .
. .
n n

En la celda A1 está indicado el número de puntos de cada archivo (n) que es diferente para cada archivo. Necesito extraer los valores de A1(n), A2(ts), A3:final(t) y B3:final(amp).

De momento tengo esto:

datos=dir('*.dat') % datos=1213x1 Struct

for k=1:length(datos)
data=datos(k).name
n(k,:)=dlmread(datos(k).name,'',[0 0 0 0]) % n=1213x1 double
ts(k,:)=dlmread(datos(k).name,'',[1 0 1 0]) % ts=1213x1 double
end

save n.dat n -ASCII
save ts.dat ts -ASCII

for k=1:length(datos)
for i=1:length(datos)
for j=1
s(i,j)=n(i,j)
sf=s(i,j)+2
t(k,:)=dlmread(datos(k).name,'',[2 0 sf 0]) %ERROR INTERNAL SIXE MISMATCH
amp(k,:)=dlmread(datos(k).name,'',[2 1 sf 1])
end
end
end

Pero en cuento llegamos a la parte de extraer los valores de t... Internal size mismatch.

Alguien podría echarme una mano o darme alguna idea?

Os lo agredecería mucho.

Gaia
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:Extraer datos de multiples archivos

Publicado por Gaia (4 intervenciones) el 24/10/2008 12:35:43
Pues nada ... que me voy a contestar yo misma :).

Por si a alguien le sirve en un futuro:

datos=dir('*.dat')
for k=1:length(datos)
fid=fopen(datos(k).name,'rt')
nu(k,:)=dlmread(datos(k).name,'',[0 0 0 0])
ts(k,:)=dlmread(datos(k).name,'',[1 0 1 0])
c(k,:)= textscan(fid,'%n %n','headerLines',2)
t=c(:,1)
amp=c(:,2)
fclose (fid)
end

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

extraer datos en matlab

Publicado por David Peña (1 intervención) el 20/03/2009 06:59:59
hola k tal ,, me gustaria k me ayudaran conun problema k tengo

tengo muhos archivos de excel , en lo k obtengo de ellos un listado de numeros
de como 7 columnas , entonces , en matlab tengo una funcion k ase un porcedimiento para ese listado de numero ,, toncs
como tengo muchisisisisissmos erchivos en excel , es tardado abrir cada archivo en excel, despues copiar el listado de numero y pegarlos en un vector en matlab y despue mandar llamar la funcion k ase mi porcedimiento y k calcule.

tonces es mu tardado ... como le ago para madar llamar esos archivos desde matlab??´para posteriormente aser mi calculo
????????????????'

me podrian ayudar
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:extraer datos en matlab

Publicado por Gaia (4 intervenciones) el 23/03/2009 19:25:52
Para llamar a todos los archivos puedes hacer lo siguiente:
datos=dir('*.xls')

en '*.xls', lo que debes poner es la direccion donde están tus archivos, por ejemplo c:Mis DocumentosTrabajo*.extension de tus archivos de excel.

Y luego,
for k=1:length(datos)

a partir de aqui puedes poner el programa que tengas para leer las variables de cada archivo, por ejemplo:

fid=fopen(datos,'rt')
c(k,:)= textscan(fid,'%n %n','headerLines',2)
t=c(:,1)
amp=c(:,2)

Y al final ,

fclose (fid)
end
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