create a loop using regexp
Afficher commentaires plus anciens
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
Réponse acceptée
Plus de réponses (1)
Christopher Berry
le 13 Août 2014
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:
1 commentaire
Nicolas
le 13 Août 2014
Catégories
En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!