MATLAB:获得向量的秩排序,不允许有绑定的秩



我有一个向量a=[6 5 7 7 4],想要获得[3 2 4 5 1]或[3 2 5 4 1]的秩-我不介意是哪一个。答案是一个向量,其中每个元素都被它所拥有的秩所取代。这对我来说意味着第五个元素是最小的,然后第二个元素是第二小的,以此类推

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

如何在没有并列的情况下获得解决方案?

这几乎是这个问题的重复。

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

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

最新更新