Skip folders in a for loop

4 views (last 30 days)
Indrani
Indrani on 28 Jun 2023
Edited: Stephen23 on 28 Jun 2023
Hi!
I have a month's folder (May) and data for the days in the subfolders as shown. I am using a for loop to read the data of the subfolders. How do I skip the dates 26, 27 and 28?
  1 Comment
Kanishk Singhal
Kanishk Singhal on 28 Jun 2023
You can get a list of files and folders(inside May) using dir function. You can then iterate over that.
If you want to create the folder name using vector you can use,
[13:25 29:31]

Sign in to comment.

Accepted Answer

Stephen23
Stephen23 on 28 Jun 2023
Edited: Stephen23 on 28 Jun 2023
"How do I skip the dates 26, 27 and 28?"
I would just use DIR to get a list of content in the parent folder. For example here is one approach:
P = '../../2018/May'; % absolute or relative path to where the parent folder is
S = [dir(fullfile(P,'1*'));dir(fullfile(P,'2*'));dir(fullfile(P,'3*'))];
S(~[S.isdir]) = []; % remove any files
The structure S contains a list of all subfolders in P with names starting with 1, 2, or 3. You can simply loop over that structure, e.g. the 2nd folder listed in S is:
S(2).name
or put all of the folder names into a cell array:
C = {S.name} % optional
Another approach is to use ISFOLDER:
for k = 1:31
F = fullfile(P,sprintf('%02d',k));
if isfolder(F)
... do whatever
else
... do nothing
end
end
Note that months also have varying lengths.

More Answers (1)

Manas
Manas on 28 Jun 2023
Hi Indrani,
I am assuming that you are using the fullfile function in matlab to get the addressess of each folder. This function returns a character Vector which has the address of the folder. You can us the If-else statements to skip the folders with date 26,27 and 28.
for more info, you can check out the documentation:

Categories

Find more on File Operations in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!