Matlab - 在列中明确确定矩阵中值的序数等级

时间:2014-09-15 15:57:08

标签: matlab ordinal

我有以下mxn矩阵:

X = [-0.0061   -0.0108   -0.0098;
    0.0092    0.0237    0.0114;
   -0.0026   -0.0082    0.0035;
   -0.0033    0.0257   -0.0106]

我想要做的是在每列中分配序数等级,即得到以下矩阵Y.

Y = [1  1   2;
     4  3   4;
     3  2   3;
     2  4   1]

我用[〜,〜,ranking] = unique(X)尝试了它,但不幸的是,它考虑了所有矩阵元素并按顺序对它们进行排序,并且没有明确地完成工作。此外,它将等级放在列向量中,而不是上Y矩阵的形状。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

只需使用sort的第二个输出。感谢@beaker的更正(见下面的评论);

[~, result] = sort(X, 1);
[~, result] = sort(result, 1);