我想根据特定列对矩阵进行排序。有sort
函数,但它会独立排序所有列。
例如,如果我的矩阵data
是:
1 3
5 7
-1 4
然后所需的输出(按第一列排序)将是:
-1 4
1 3
5 7
但sort(data)
的输出是:
-1 3
1 4
5 7
如何按第一列对此矩阵进行排序?
答案 0 :(得分:75)
我认为sortrows功能正是您所需要的。
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
答案 1 :(得分:4)
sortrows()
的替代方案,可应用于更广泛的方案。
保存您要订购的行/列的排序索引:
[~,idx]=sort(data(:,1));
根据先前排序的索引重新排序所有行/列
data=data(idx,:)