1
我有一個60x6
矩陣X
其中列1是索引,列2到6是該特定索引的數據。我想爲數據列中的每個值分配排名,使得列2至列5按降序排列(最高值排名1,排名最低的排名爲60),列6按降序排列(最低排名1,排名最高的60),但是要保證行順序根據索引(第1列)。排名關係按照值的升序排列等於他們職位平均數的排名。MATLAB按照升序/降序排列矩陣中的值
我已經通過了一些建議(here,here和here)看了一下,盡我自己的版本:
[~,Z1] = sort(X(:,2),'descend');
[~,Z2] = sort(X(:,3),'descend');
[~,Z3] = sort(X(:,4),'descend');
[~,Z4] = sort(X(:,5),'descend');
[~,Z5] = sort(X(:,6));
但沒有似乎工作,我想他們的方式。因此,對於
X =
1 0.9503 0.5646 0.3785 0.5468 -0.0161
2 0.9430 0.5728 0.3320 0.6693 -0.0161
3 0.5305 0.2719 0.1545 0.3480 0.0042
4 0.8588 0.5816 0.3429 0.6477 -0.0158
5 0.9391 0.5984 0.3362 0.6054 -0.0161
6 0.3780 0.2307 0.0906 0.3387 0.0054
我需要
Ans =
1 1 4 1 4 2
2 2 3 4 1 2
3 5 5 5 5 5
4 4 2 2 2 4
5 3 1 3 3 2
6 6 6 6 6 6