Using wildcards in dir only for strings

6 Ansichten (letzte 30 Tage)
Cl
Cl am 27 Okt. 2014
Beantwortet: Anand Swaroop am 7 Dez. 2021
I have a set of files named
abc1.mat
yhs2.mat
slk3.mat
etc. I need to loop through them all and find the files with the specified number, so my initial thought was to use
dir('*',number,'*')
but this causes a problem when the numbers reach double figures. So if I search for 1, I will get 1, 10, 11, 12 etc. Is there any way of searching for just the number and removing those that I would not want?

Antworten (1)

Anand Swaroop
Anand Swaroop am 7 Dez. 2021
To filter out file which has a number supposed to match exactly (not partially).
We can try below code snippet.
% Your search criteria
filelist = dir(['*' num2str(number,'%d') '*']);
% Using regex to match exact number
filename = regexp({filelist.name}, ['[a-zA-Z]+' num2str(number,'%d') '[a-zA-Z.]+'], 'match');
% Removing empty cells
filename(~cellfun('isempty',filename))
When we are using dir(),we cannot do much solely using wild characters. So, we must use some alternate solution. Hope this will solve your problem.
Best Regards,
Anand Swaroop

Kategorien

Mehr zu File Operations finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by