MATLAB 等效于 R 函数 rank()?

MATLAB equivalent of the R function rank()?

R有如下函数,rank()

https://www.rdocumentation.org/packages/base/versions/3.4.1/topics/rank

此函数的作用是计算 return 升序列表中每个元素的顺序。

(这不是函数 order(),它 return 是每个元素在升序列表中的索引。)

MATLAB中有这样的函数吗?我怀疑在 MATLAB 中编写自己的此类函数效率很低。

是的,你可以使用 unique():

[~, ~, rank] = unique(A); % A is the array you want to rank

请注意,MATLAB 的 unique() 函数与 R 的 rank() 函数不同地解决关系。


或者,如果您想解决 rank() 这样的关系,那么您可以使用 tiedrank() 代替,前提是您有统计工具箱:

rank = tiedrank(A);