Loop through multiple levels of subfolders to run .mat files

13 次查看(过去 30 天)
Hi, I'm new here and this is my first question (also very new to coding). I'll do my best to explain what I'm trying to do.
Here is my set up:
Participant Data > Subject (1-30) > trial 1 & trial 2 > apart & together > (7 total .mat files)
the names of the files are like: a_eo, t_eo, a_ec, t_ec, ..... so each subject has the same names of .mat files
I have a main code that can run the individual files, but to do 814 individually is ridiculous (wich I stared to do but realizd there has got to be a better way). I feel like this can be done with some nested loops, but I don't know how to loop through the folders since they contain letters and numbers in the folder names. I do have code that allows me to export the processed data to specific excel rows (for each subject), but I am also unsure of how to include this into the loops as I need the processed data not to be overwritten.
some help would be greately appreciated! Thank you!!
  2 个评论
Voss
Voss 2022-2-11
Other than that, I'm not sure I can help further without knowing more about your setup and exactly what you want to do, e.g., you have 7 .mat files per subject and 30 subjects for a total of 814 files?
Cassandra Martin
Cassandra Martin 2022-2-11
Thanks I'll take a look.
Yes thats correct. I'd like to be able to run one script without having to manually change directories and the excel paths.

请先登录,再进行评论。

采纳的回答

Stephen23
Stephen23 2022-2-11
编辑:Stephen23 2022-2-11
P = 'absolute/relative path to the main directory';
S = dir(fullfile(P,'**','*.mat'));
for k = 1:numel(S)
F = fullfile(S(k).folder,S(k).name);
D = load(F);
... your code that processes the imported file data, accessing the fields of D
... for example: D.whateverFieldYOuNeed
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by