我试图找到简短有效的向量运算,通过它们的相对大小有效地对向量中的条目进行排序。例如,如果向量是:
A = [212 314 196];
我想要一个返回的函数:
B = [2 3 1];
我正在搞乱sort函数,但到目前为止我的所有解决方案都有我认为可能不必要的循环。我很难过 - 有没有人知道更优雅的方式?
答案 0 :(得分:2)
Loren在inverting the sort order上有一篇不错的博客文章。
答案 1 :(得分:0)
[〜,B] =当A是行向量时排序(A)。
[〜,B] =排序(A,2)当A是矩阵并且您想要每行的相对大小时。
答案 2 :(得分:0)
假设矢量A中的所有数字都不同,您可以使用A的转置找到它们的排名:
sum(A > A.') + 1
对于您的矢量,结果如下:
[2 3 1]