2017-03-17 85 views
0

嗨,我有一個289x2數組,我想在MatLab中排序。我想將第一列按數字升序排序。但是,我想保留與之關聯的第二列條目。最好的解釋方式是通過一個例子。matlab中的數組排序

x = 76 1 
    36 2 
    45 3 

現在我想,這樣它會返回一個數組,看起來像排序X:

x = 36 2 
    45 3 
    76 1 

所以第一列已經被分類成數字順序,但仍然保留了其第二列的值。到目前爲止,我已經嘗試sort(x,1)。這是我想要的第一列,但不保持配對。這返回x爲:

x = 36 1 
    45 2 
    76 3 

任何幫助將是偉大的。乾杯!!

回答

3

這正是sortrows所做的。

x=sortrows(x); % or x=sortrows(x,1); 

,或者如果你想使用sort然後先拿到分類索引,然後據此安排行是這樣的:

[~, idx] = sort(x); %Finding the sorted indexes 
x = x(idx(:,1),:) ; %Arranging according to the indexes of the first column 

輸出的兩種方法:

x = 
    36  2 
    45  3 
    76  1