create a loop using regexp
이전 댓글 표시
I have imported a bench of text file into MATLAB using
list_files2load = dir(fullfile(directory1,'Mod1*));
In those files (here is an example: Mod1-A-00k.txt, Mod1-A-10k.txt, Mod1-A-30k.txt; Mod1-B-00k.txt, Mod1-B-10k.txt, Mod1-B-30k.txt), I would like to pick first only the ones that end with '*00k.txt', so I do :
a={'Mod1-A-00k.txt', 'Mod1-A-10k.txt', 'Mod1-A-30k.txt', 'Mod1-B-00k.txt', 'Mod1-B-10k.txt', 'Mod1-B-30k.txt'}
idx=~cellfun(@isempty,regexp(a,'.+(00k.txt)\>','match'))
b=a(idx)
Now I would like to know if it is possible with regexp to create a loop which first starts with piking the files ending with '*00k.txt' and in the second loop the files ending with '*10k.txt' and so on.
Thank you
채택된 답변
추가 답변 (1개)
Christopher Berry
2014년 8월 13일
You can do this with regular expressions, but your name requirements seem simple enough to do with dir and sprintf instead.
My suggestion would be to put the dir call inside your for loop and try something like:
for i=0:10:30
str = sprintf('Mod1*%0dk.txt',i)
list_files2load = dir(fullfile(directory1,str));
%DO WORK ON FILES HERE
end
See the documenation for sprintf here:
카테고리
도움말 센터 및 File Exchange에서 Characters and Strings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!