load files from different folders in current folder

2 次查看(过去 30 天)
Hello
I have 3 different folders in the current folder (CBC, MHA, FJR). Each folder contains 12 mat files which have the same names in all folders. I have some code, that load and make some data processing on 12 files from one folder. Now I want to make a for loop that perform data processing in all three folders. I would like something like open the folder, make data processing and go back to current folder, then open another folder and so on. How can I do that?

采纳的回答

Walter Roberson
Walter Roberson 2019-10-31
projectdir = '.'; %or name of containing folder
foldinfo = dinfo(projectdir);
foldinfo(~[foldinfo.isfolder]) = []; %get rid of non-folders
foldinfo(ismember({foldinfo.name}, {'.', '..'})) = []; %get rid of . and .. folders
foldnames = fullfile(projectdir, {foldinfo.name});
numfold = length(foldnames);
for D = 1 : numfold
thisfold = foldnames{D};
dinfo = dir( fullfile(thisfold, '*.mat'));
filenames = fullfile(thisfold, {dinfo.name});
numfile = length(filenames);
for F = 1 : numfile
thisfile = filenames{F};
file_struct = load(thisfile);
%now extract variables from file_struct and process them
end
end
  3 个评论
Walter Roberson
Walter Roberson 2022-1-10
Edit the line
projectdir = '.'; %or name of containing folder
to reflect the name of the parent directory that contains the subfolders.
Edit the line
dinfo = dir( fullfile(thisfold, '*.mat'));
to change .mat to the appropriate extension for the files you are using.
Edit the line
file_struct = load(thisfile);
to use whatever function is needed to read in those kinds of files. For example, perhaps readtable() or dicomread(), depending on what is stored in the file.
Edit the line
%now extract variables from file_struct and process them
to be whatever code you need in order to process the file that you just read in.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 File Operations 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by