How to search for specific characters within a string.
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Say I have the following files,
foo1.85e-01.mat
foo1.79e+00.mat
foo1.82e+00.mat
foo1.94e+00.mat
foo2.30e+00.mat
How can I select just the files with numbers between 1.8 and 2.0, i.e., the third and fourth files? Together the commands
flist = dir('foo1.8*e+00.mat')
and
flist = dir('foo1.9*e+00.mat')
return all the desired files. But is there a single query that will return the same files?
0 commentaires
Réponse acceptée
dpb
le 18 Sep 2013
The OS wildcard search isn't flexible enough directly; I'd just return them all and then winnow the list while processing it -- sotoo
d=dir('foo*.mat');
for ix=1:length(d)
fn=d(ix).name;
if ~iswithin(sscanf(fn,'foo%f.mat'), 1.8, 2.0), break, end % skip unwanted
...
end
where iswithin is my handy helper function
function flg=iswithin(x,lo,hi)
% returns T for values within range of input
% SYNTAX:
% [log] = iswithin(x,lo,hi)
% returns T for x between lo and hi values, inclusive
flg= (x>=lo) & (x<=hi);
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Whos dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!