How to load multiple files and calculate value for each file (with same formula)

2 vues (au cours des 30 derniers jours)
Pasu Surananchanok
Pasu Surananchanok le 24 Avr 2022
Commenté : Mathieu NOE le 25 Avr 2022
Hello,
In case that I have the separate 123 mat files (bearing1_1_1.mat to bearing 1_1_123.mat) and I would like to calculate RMS and Crest Factor of each file (i.e., RMS for bearing1_1_1 = xxxxx, CF for bearing1_1_1 = xxxxx). How to write the code?
PS. I already have code for RMS and CF calculation but I only want how to calculate them (all 123 file) in one execution.
Because now I have to do it manually file by file and it consums lot of times (i.e., run bearing1_1_1.mat and go to next data)
Thanks for your kind supports

Réponses (1)

Mathieu NOE
Mathieu NOE le 25 Avr 2022
hello
this is the code (principle) to load all the mat files in a loop
% use the structure returned by DIR:
P = cd; % working directory
S = dir(fullfile(P, 'bearing*.mat'));
for k = 1:numel(S)
S(k).folder % fyi
S(k).name % fyi
F = fullfile(S(k).folder, S(k).name);
%S(k).data = load(F); % or READTABLE or whatever.
S(k).data = load(F);
end
% % structure S: it contains all of your file data and the corresponding filenames
% % For example, the 2nd filename and its data:
% S(2).name
% S(2).data
  1 commentaire
Mathieu NOE
Mathieu NOE le 25 Avr 2022
maybe you want to have the files sorted correctly and matlab is not very good for that
so in case the files are not processed in the "right" sorted manner , you may need this excellent FEX submission :
the code is now :
% use the structure returned by DIR:
P = cd; % working directory
% S = dir(fullfile(P, 'bearing*.mat'));
S = dir(fullfile(P, 'Data*.mat'));
S = natsortfiles(S); % sort folders / file names into natural order
% (download FEX : https://fr.mathworks.com/matlabcentral/fileexchange/47434-natural-order-filename-sort)
for k = 1:numel(S)
S(k).folder % fyi
S(k).name % fyi
F = fullfile(S(k).folder, S(k).name);
%S(k).data = load(F); % or READTABLE or whatever.
S(k).data = load(F);
end
% % structure S: it contains all of your file data and the corresponding filenames
% % For example, the 2nd filename and its data:
% S(2).name
% S(2).data

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing 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