import multiple spreadsheats at once (.xlsx files)

1 visualización (últimos 30 días)
Joey Smit
Joey Smit el 12 de Mayo de 2017
Comentada: Joey Smit el 13 de Mayo de 2017
so I have to import multiple spreadsheats at once (roughly 400). I can import them all manually like
filename='20150901_1.xlsx'
A1=xlsread(filename);
filename2='20150902_1.xlsx'
A2=xlsread(filename2)
Is there a faster way to do this? The spreadsheats are all 2D matrices. thanks in advance

Respuestas (1)

Joseph Cheng
Joseph Cheng el 13 de Mayo de 2017
Editada: Joseph Cheng el 13 de Mayo de 2017
well first you'll want to get away from generating variables in that fashion as you'll basically have A400 or more which is hard to keep track of. instead of manually you can use the function dir() which can poll a file for the files in a folder. (in combination with uigetdir/uigetfile you can navigate to another folder without coding in the file locations.)
example:
xlfiles = dir('*.xlsx')
for ind = 1:numel(xlfiles)
A(:,:,ind) = xlsread(xlfiles(ind).name);
end
if they are at different sizes you can use structs which i think goes like this:
data = struct('A',[])
for ind = 1:numel(xlfiles)
data(ind).A = xlsread(xlfiles(ind).name);
end
or alternatively put it into a cell array
  1 comentario
Joey Smit
Joey Smit el 13 de Mayo de 2017
Ok, I get the idea but what does the .name thing do in the 3rd line? I can't find any example of it. I've been able to import some of the xlsx files manually using the same line of code (more or less), but I could skip the .name stuff there.

Iniciar sesión para comentar.

Categorías

Más información sobre Data Import and Analysis en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by