Effacer les filtres
Effacer les filtres

How I can select the maximum number in my filename?

2 vues (au cours des 30 derniers jours)
Rita
Rita le 19 Août 2015
Commenté : Rita le 19 Août 2015
I really would appreciate if anyone could solve my problem. I have
net1_0.2327.mat
net1_0.3425.mat
net2_0.8765.mat
net2_0.6754.mat ,......to net50_0.87654.mat net50_0.3456.mat
I would like to get these net1_0.3425.mat net2_0.8765.mat ,.... the max of each net1 to net net50(comparing net1 with net1 and net2 with net2 and so on) I used the script
dinfo = dir('net*.mat');
filenames = {dinfo.name};
parts = regexp(filenames, '_', 'split');
part2 = cellfun(@(C) C{2}, parts, 'Uniform',0);
parts3 = regexp(part2, '.mat', 'split');% to remove mat extension
val2 = str2double(parts3)% I get NaN instead of numbers!
Thanks in advance for your help.

Réponse acceptée

Walter Roberson
Walter Roberson le 19 Août 2015
dinfo = dir('net*.mat');
filenames = {dinfo.name};
filenumstr = regexprep(filenames, {'^[^_]+_', '\.mat$'}, {'', ''});
val2 = str2double(filenumstr);

Plus de réponses (1)

Morteza
Morteza le 19 Août 2015
Change your code like below:
clc,clear all
dinfo = dir('net*.mat');
filenames = {dinfo.name};
parts = regexp(filenames, '_', 'split');
part2 = cellfun(@(C) C{2}, parts, 'Uniform',0);
parts3 = regexp(part2, '.mat', 'split');% to remove mat extension
for i = 1:length(parts3)
val2(i) = str2double(cell2mat(parts3{1,i}));
end
  1 commentaire
Rita
Rita le 19 Août 2015
Thank you so much Morteza.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by