How I can select the maximum number in my filename?
1 view (last 30 days)
Show older comments
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.
0 Comments
Accepted Answer
Walter Roberson
on 19 Aug 2015
dinfo = dir('net*.mat');
filenames = {dinfo.name};
filenumstr = regexprep(filenames, {'^[^_]+_', '\.mat$'}, {'', ''});
val2 = str2double(filenumstr);
0 Comments
More Answers (1)
Morteza
on 19 Aug 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
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!