1

我有以下 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 矩阵的形状。

谢谢你的帮助!

4

1 回答 1

0

只需使用sort. 感谢@beaker 的更正(见下面的评论);

[~, result] = sort(X, 1);
[~, result] = sort(result, 1);
于 2014-09-15T16:00:39.147 回答