1

我有一个挑战来订购我的矩阵。提供的功能sortrows以相反的方式工作......

取这个二维矩阵

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 3 2]

4

2 回答 2

3
[~,sorted_inds] = sort(M,2);

会做。

于 2012-08-24T15:53:15.120 回答
0

我认为您正在寻找常规sort函数的第二个输出:

[~,I] = sort(M,2)

此语法抑制实际的排序矩阵Msorted,并返回索引I,使得

for j = 1:n, Msorted(j,:) = M(I(j,:),j); end

键入doc sort以获取更多信息。

于 2012-08-24T15:59:14.190 回答