八度返回值已更改的字符串的排序数组



我正在尝试按名称对文件列表进行排序,但是当我使用排序八度函数时,返回的数组的值发生了变化,请参阅下面的代码:

files = dir('*.ASC');
newFiles;
for i = 1:length(files(:,1))
newFiles = [newFiles; files(i, 1).name];
endfor;

新文件 =

ALA0.ASC
ALA15.ASC
ALA150.ASC
ALA30.ASC
ALA45.ASC
ALA60.ASC
ALA90.ASC

排序(新文件(

ans =
ALA0...A
ALA10.ACC
ALA10.ASC
ALA30.ASC
ALA45.ASC
ALA650ASC
ALA95ASSSC

如何使列向量与原始值一起排序? 或者是否有其他方法可以对从 dir 函数获得的文件名进行排序?

尝试使用单元格:

files = dir('*.*');
newFiles={};
for i = 1:length(files(:,1))
newFiles(i)=files(i, 1).name;
endfor;

对于我所看到的,dir 已经生成了一个排序列表

octave:30> newFiles
newFiles =
{
[1,1] = ALA01.asc
[1,2] = ALA20.asc
[1,3] = ALA33.asc
[1,4] = ALA41.asc
}
octave:31> sort(newFiles)
ans =
{
[1,1] = ALA01.asc
[1,2] = ALA20.asc
[1,3] = ALA33.asc
[1,4] = ALA41.asc
}

最新更新