Matlab排序并获得oringal矩阵的排名

时间:2017-08-23 11:42:07

标签: matlab

请帮我找一个有效的方法(不用于循环)来获取矩阵的排名。

示例:

orig_matrix = [-1 2 nan 2 3 4 -2; 100 nan nan -100 300 1000 0]';
[matrix_sorted, id] = sort(orig_matrix ,1,'ascend');

我知道'id'是orig_matrix中matrix_sorted元素的位置。但我想得到orig_matrix中所有元素的排名,如下所示:

ranking = [2 3 7 4 5 6 1; 3 6 7 1 4 5 2]

非常感谢!

2 个答案:

答案 0 :(得分:2)

只需添加到OmG的帖子,您还可以指定要单独排序的维度,这样您就不需要转置:

[B, Result] = sort(orig_matrix, 2);

答案 1 :(得分:1)

你可以通过使用转置的简单技巧来实现:

request.FILE