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

2 visualizaciones (últimos 30 días)
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

Respuestas (1)

Mathieu NOE
Mathieu NOE el 25 de Abr. de 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 comentario
Mathieu NOE
Mathieu NOE el 25 de Abr. de 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

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing 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