排序自然结构

时间:2014-09-04 23:14:50

标签: string matlab structure cell

我的代码如下:

files=dir('*.extension')

我需要根据名称自然地对'files'结构进行排序,例如files(i).name

如果我有file1,file2,file11,matlab命令file1,file11,file2,我想要file1,file2,file11。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:3)

您只需将文件名更改为file01,file02,file11即可。然后matlab将按照您想要的方式对它们进行排序。或者,如果您认为逐个更改文件名非常不方便,则可能需要写下一些代码:

for idx = 1:length(files)
    seq(idx) = num2str(files(idx).name(5:end);
end
[~,ord] = sort(seq);
for idx = 1:length(files)
    newfiles(idx)= files(ord(idx));
end