Borrar filtros
Borrar filtros

How to use a for cycle for opening .mat files

4 visualizaciones (últimos 30 días)
Hugo
Hugo el 8 de Feb. de 2022
Respondida: Image Analyst el 9 de Feb. de 2022
Hi,
In the directory c:\MAT (it's not my workspace directory), I have the following .mat files:
A1B1.mat
A1B2.mat
A1B3.mat
A2B1.mat
A2B2.mat
A2B3.mat
A3B1.mat
A3B2.mat
A3B3.mat
How can I automate the opening/import of them, for example, using a for cycle, saving each .mat file in a new variable?
Best regards,

Respuesta aceptada

Stephen23
Stephen23 el 8 de Feb. de 2022
Editada: Stephen23 el 8 de Feb. de 2022
The general concept is shown here:
You can easily store the imported data in the same structure as DIR returns, e.g.:
P = 'C:\MAT';
S = dir(fullfile(P,'*.mat'));
for k = 1:numel(S)
F = fullfile(P,S(k).name);
S(k).data = load(F);
end
All of the imported file data will be stored in the structure S. For example, for the second file:
S(2).name % filename
S(2).data % structure of the imported data
If each file contains exactly one variable of the same name then you can simplify the later processing by specifying that variable when importing:
P = 'C:\MAT';
S = dir(fullfile(P,'*.mat'));
for k = 1:numel(S)
F = fullfile(P,S(k).name);
T = load(F);
S(k).data = T.nameOfTheVariable;
end
Note that after then loop you can use this syntax, which might make processing your data easier:
  2 comentarios
Hugo
Hugo el 9 de Feb. de 2022
Thank you for your useful answer. your solution works.
Now, if I would like to load each .mat file that your code originates into a variable,, how shall my "load" command be?
Stephen23
Stephen23 el 9 de Feb. de 2022
"Now, if I would like to load each .mat file that your code originates into a variable"
They are already in a variable, the structure S. You can access them simply and efficiently using indexing.
If you want each file loaded into a separate, dynamically named variable, you might like to read this:

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 9 de Feb. de 2022

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by