天天看點

matlab:對一個向量進行排序,傳回每一個資料的rank 序号 。。。

%% Rank the entropy_loss     

% for iiii = 1:size(Group_age, 1)  

%     count_1 = 0 ;

%     tmp = Group_age(iiii, 1);

%     for jjj = 1:size(Group_age, 1)

%         if (Group_age(jjj, 1) > tmp)

%             count_1 = count_1 + 1;

%         else

%             continue;

%         end

%     end

%     Rank_age(iiii, 1) = count_1 + 1;    

% end

傳回的序号絕逼是錯誤的額。。為何?

利用 matlab sort 函數,就可以了,如:

>> X = [3 7 5 0 4 2 ];

>> [y, index] = sort(X)

y =

     0     2     3     4     5     7

index =

     4     6     1     5     3     2