如何在一列中对MATLAB中的二维数组进行sorting?
我想根据特定的列来排列matrix。 有一个sort
函数,但它独立地sort
所有列。
例如,如果我的matrixdata
是:
1 3 5 7 -1 4
然后所需的输出(按第一列sorting)将是:
-1 4 1 3 5 7
但是sort(data)
的输出是:
-1 3 1 4 5 7
我怎样才能sorting这个matrix的第一列?
我认为sortrowsfunction是你正在寻找的。
>> sortrows(data,1) ans = -1 4 1 3 5 7
sortrows()
的替代方法,可以应用于更广泛的场景。
-
通过以下方式保存要订购的行/列的sorting索引:
[~,idx]=sort(data(:,1));
-
根据以前sorting的索引对所有行/列进行重新sorting
data=data(idx,:)