Octave 返回数值被改变的字符串排序数组。

问题描述 投票:0回答:1

我试图按名称排列一个文件列表,但当我使用Octave排序函数时,返回的数组值发生了变化,见下面的代码。

files = dir('*.ASC');
newFiles;

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

newFiles =

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

排序(newFiles)

ans =

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

我怎样才能让我的列向量与原始值一起排序呢? 或者是否有其他方法对从dir函数中得到的文件名进行排序?

octave
1个回答
0
投票

试着使用一个单元格。

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
}
© www.soinside.com 2019 - 2024. All rights reserved.