Matlab:如何更改以下程序

时间:2010-02-28 18:22:00

标签: matlab filenames

我有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]);  
    ...  

有没有办法对文件名中包含的数字进行循环?
上述程序的问题是我得到的结果不符合文件名中包含的数字的顺序。

感谢所有帮助我推进工作的人。

1 个答案:

答案 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;