How do I load multiple .mat files and save them as variables?

54 visualizaciones (últimos 30 días)
Paul
Paul el 2 de Sept. de 2022
Editada: Stephen23 el 2 de Sept. de 2022
So I'm trying to load multiple .mat files into matlab. In the current folder, my .mat files are named "test1.mat" to "test2036.mat", so 36 test cases in total.
Can I have some help in importing all of the test cases and saving as variables such as "test1Data", "test2Data" etc.
Anyhelp is much appreciated! Thanks :)
  2 comentarios
Stephen23
Stephen23 el 2 de Sept. de 2022
Editada: Stephen23 el 2 de Sept. de 2022
"...and saving as variables such as "test1Data", "test2Data" etc."
Best avoided:
"...my .mat files are named "test1.mat" to "test2036.mat", so 36 test cases in total."
From 1 to 2036 gives ... 2036 test cases. Or can multiple files correspond to one test case?
Paul
Paul el 2 de Sept. de 2022
Thanks for your quick response, I made an error in the original question, it shouldn't read test2036.mat but just test36.mat

Iniciar sesión para comentar.

Respuestas (1)

Stephen23
Stephen23 el 2 de Sept. de 2022
Editada: Stephen23 el 2 de Sept. de 2022
P = '.'; % absolute or relative path to where the files are saved.
S = dir(fullfile(P,'test*.mat'));
for k = 1:numel(S)
F = fullfile(P,S(k).name);
C = struct2cell(load(F));
S(k).data = C{1}; % assuming exactly one variable per file, which
end % is important information you did not tell us.
Your file data will be stored in the structure array S. You can trivially loop over all of S to process the imported data.
For example the second file name and its corresponding data:
S(2).name
S(2).data
You can also use the following convenience syntax to access the field data of S:
If you expect those files to be listed in alphanumeric order, you can download and use this:

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by