load files from different folders in current folder

조회 수: 5 (최근 30일)
Anna Sergeeva
Anna Sergeeva 2019년 10월 31일
댓글: Walter Roberson 2022년 1월 10일
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
Zakia wani
Zakia wani 2022년 1월 10일
can u plz mention where to edit this code to use it
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