MATLAB:获取向量的等级排序,不允许绑定等级

时间:2016-01-07 05:16:29

标签: matlab

我有一个矢量A = [6 5 7 7 4]并想要获得[3 2 4 5 1]或[3 2 5 4 1]的等级 - 我不介意哪个。答案是一个向量,其中每个元素都被它所持有的等级所取代。这向我表明第五个元素是最小的,然后第二个元素是第二个元素,依此类推。

我想过做[~,~,rnk] = unique(A),但这不起作用,而是产生[3 2 4 4 1]。

如何获得没有绑定排名的解决方案?

1 个答案:

答案 0 :(得分:3)

这几乎与此question重复。

我们使用sort两次,首先对数组进行排序以获取索引,然后对索引进行排序。

A = [6 5 7 7 4];
[~, rnk] = sort(A);
[~, rnk] = sort(rnk);
rnk =

     3     2     4     5     1