我有一个挑战来订购我的矩阵。提供的函数如sortrows
以相反的方式工作......
采用这个2D矩阵
M =
40 45 68
50 65 58
60 55 48
57 67 44
,
目标是找到表示每行排序索引(排名)的矩阵O
,即:
O =
1 2 3
1 3 2
3 2 1
2 3 1
.
因此,对于第二行50
是最小的元素(1),65
是最大的(3),而58
是第二大的(2),因此行向量{ {1}}。
答案 0 :(得分:3)
[~,sorted_inds] = sort(M,2);
会做的。
答案 1 :(得分:0)
我认为您正在寻找常规sort
函数的第二个输出:
[~,I] = sort(M,2)
此语法压缩实际排序的矩阵Msorted
,并返回索引I
,以便
for j = 1:n, Msorted(j,:) = M(I(j,:),j); end
输入doc sort
以获取更多信息。