Effacer les filtres
Effacer les filtres

Extracting a variable from a series of files contained inside a folder

1 vue (au cours des 30 derniers jours)
Lorenzo Merlino
Lorenzo Merlino le 13 Fév 2024
Déplacé(e) : Dyuman Joshi le 13 Fév 2024
The problem is simple: I have a folder which contains 10 .mat files, each of them with a series of variables. What I need to do is to create a code which automatically selects one specific variable (always the same) from each file of said folder, then storing it in a separate matrix which I can use later.
Does anybody have a solution to this?
  1 commentaire
Dyuman Joshi
Dyuman Joshi le 13 Fév 2024
Déplacé(e) : Dyuman Joshi le 13 Fév 2024
Refer to this documentation page for importing and exporting multiple files - https://in.mathworks.com/help/matlab/import_export/process-a-sequence-of-files.html
Additionally, use load instead of importdata() for reading the .mat files.

Connectez-vous pour commenter.

Réponse acceptée

Voss
Voss le 13 Fév 2024
% the folder which contains 10 .mat files
file_path = '.';
% the name of the variable to load from each .mat file
variable_name = 'X';
% get file info. note that the files are not in any particular order. if
% you want a specific order, you'll have to take care to do that.
files = dir(fullfile(file_path,'*.mat'));
N = numel(files);
% load each X into a struct array S:
file_names = fullfile({files.folder},{files.name});
S = struct(variable_name,cell(1,N));
for ii = 1:N
S(ii) = load(file_names{ii},variable_name);
end
% if you want to combine the X from each mat file into a single array
X = cat(3,S.(variable_name));
% otherwise, you can just access them through S
  2 commentaires
Lorenzo Merlino
Lorenzo Merlino le 13 Fév 2024
Great, it worked! Thanks so much.
Voss
Voss le 13 Fév 2024
You're welcome!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Workspace Variables and MAT-Files dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by