如何在MATLAB中针对一列对二维数组进行排序?
题
我想根据特定列对矩阵进行排序。有一个 sort
函数,但它会独立地对所有列进行排序。
例如,如果我的矩阵 data
是:
1 3
5 7
-1 4
然后所需的输出(按第一列排序)将是:
-1 4
1 3
5 7
但 sort(data)
的输出是:
-1 3
1 4
5 7
如何按第一列对此矩阵进行排序?
解决方案
我认为您正在寻找 sortrows 功能
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
其他提示
sortrows()
的替代方案,可应用于更广泛的场景。
-
保存您要订购的行/列的排序索引:
[~,idx]=sort(data(:,1));
-
根据先前排序的索引重新排序所有行/列
data=data(idx,:)
醇>
不隶属于 StackOverflow