我有500个文件.TXT,例如:
abc-1.TXT
adfer-2.txt
affd-3.TXT
asxdcccc-4.TXT
...
如何更改以下程序以按文件名中的数字顺序获得结果:
Names = dir('MyFile\*.TXT');
for i = 1:500
fn = strcat(['MyFile\' Names(i).name]);
...
有没有办法对文件名中包含的数字进行循环?
上述程序的问题是我得到的结果不符合文件名中包含的数字的顺序。
感谢所有帮助我推进工作的人。
答案 0 :(得分:1)
names={'abc-1.TXT';
'affd-3.TXT';
'sdfg-33.txt';
'adfer-2.txt';
'asxdcccc-4.TXT'};
for i=1:length(names)
[v1 v2]=regexp(names{i},'[1-9]*');
numbers(i)=str2num(names{i}(v1:v2));
end
[B,IX] = sort(numbers);
names{IX}
最后一行将按数字顺序打印名称。我想你可以从这里继续。
哦,你应该从
开始Names = dir('*.TXT');
names = Names.name;