我有一个矢量A = [6 5 7 7 4]并想要获得[3 2 4 5 1]或[3 2 5 4 1]的等级 - 我不介意哪个。答案是一个向量,其中每个元素都被它所持有的等级所取代。这向我表明第五个元素是最小的,然后第二个元素是第二个元素,依此类推。
我想过做[~,~,rnk] = unique(A)
,但这不起作用,而是产生[3 2 4 4 1]。
如何获得没有绑定排名的解决方案?
答案 0 :(得分:3)
这几乎与此question重复。
我们使用sort两次,首先对数组进行排序以获取索引,然后对索引进行排序。
A = [6 5 7 7 4];
[~, rnk] = sort(A);
[~, rnk] = sort(rnk);
rnk =
3 2 4 5 1