Skip folders in a for loop

4 ビュー (過去 30 日間)
Indrani
Indrani 2023 年 6 月 28 日
編集済み: Stephen23 2023 年 6 月 28 日
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 件のコメント
Kanishk Singhal
Kanishk Singhal 2023 年 6 月 28 日
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]

サインインしてコメントする。

採用された回答

Stephen23
Stephen23 2023 年 6 月 28 日
編集済み: Stephen23 2023 年 6 月 28 日
"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.

その他の回答 (1 件)

Manas
Manas 2023 年 6 月 28 日
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:

カテゴリ

Help Center および File ExchangeFile Operations についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by