我试图找到短而有效的向量操作,这些操作可以通过它们的相对大小有效地对向量中的条目进行排名。例如,如果一个向量是:
A = [212 314 196];
我想要一个返回的函数:
B = [2 3 1];
我在搞乱排序功能,但到目前为止,我所有的解决方案都有我认为可能不必要的 for 循环。我很难过——有人知道更优雅的方式吗?
Loren 有一篇关于反转排序顺序的不错的博客文章。
[~,B]=sort(A) 当 A 是行向量时。
[~,B]=sort(A,2) 当 A 是矩阵并且您想要每行的相对大小时。
假设向量 A 中的所有数字都是不同的,你可以使用 A 的转置找到它们的排名:
sum(A > A.') + 1
对于您的向量,这会导致:
[2 3 1]