Check the existence of a directory based on part of a string?
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
automycer
am 24 Aug. 2016
Bearbeitet: Stephen23
am 18 Apr. 2021
hello all,
I have a range of sub-folders which are named as CL_CS, CL_CS_01, CL_CS_02...CL_CS_xx. These folders are located in same directory with other folders. I want to run a loop which checks the first 5 characters of the folder name and run some operations inside those folders.
I am not quite sure how to match the string for a folder name. So far...
fpath = 'CL_CS';
while isequal(exist(fpath,'dir'),7)
% do something here
end
Thanks!
0 Kommentare
Akzeptierte Antwort
Stephen23
am 24 Aug. 2016
Bearbeitet: Stephen23
am 18 Apr. 2021
The simplest option is to use dir directly to return only directory names that match that pattern.
S = dir('CL_CS*');
S = S([S.isdir]);
S = natsortfiles(S); % (optional) alphanumeric sort by filename
and then simply loop over those subdirectory names:
for k = 1:numel(S)
name = S(k).name
... your code
end
Weitere Antworten (1)
Azzi Abdelmalek
am 24 Aug. 2016
When you run
f=dir(current_folder)
You wil get a cell array of the content of your current folder, like
f={'CL_CS','CL_CS_01','CL_CS_02','other1' 'other'}
name=regexp(f,'CL_CS.+','match','once')
idx=~cellfun(@isempty,name)
name=name(idx)
4 Kommentare
Stephen23
am 24 Aug. 2016
Bearbeitet: Stephen23
am 24 Aug. 2016
@automycer: see my answer, I already showed you how to do this correctly (Azzi Abdelmalek's answer is not correct, because as you have found dir returns a structure, not a cell array of names).
And I also showed you how to get the names into the correct order!
Azzi Abdelmalek
am 24 Aug. 2016
@Stephen Cobeldick, why the answer is not correct? dir returns a struct variable, but you can get the cell array containing the names, as mentioned in my above comment!
Siehe auch
Kategorien
Mehr zu File Operations finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!