2008-09-25 198 views
45

我想根據特定的列對矩陣進行排序。有一個sort函數,但它將所有列獨立排序。如何在MATLAB中對一列進行二維數組排序?

例如,如果我的矩陣data是:

1  3 
5  7 
-1  4 

然後期望的輸出(由第一列進行排序)將是:

-1  4 
1  3 
5  7 

sort(data)輸出爲:

-1  3 
1  4 
5  7 

如何根據第一列對此矩陣進行排序?

回答

75

我認爲sortrows函數是你正在尋找。

>> sortrows(data,1) 

ans = 

    -1  4 
    1  3 
    5  7 
+1

謝謝。我想知道爲什麼我在「另見」中忽略了它 – Midhat 2008-09-25 19:40:20

3

sortrows()的替代方案,可應用於更廣泛的場景。

  1. 救你想訂購的行/列的排序指標:根據以前的分類指數

    [~,idx]=sort(data(:,1)); 
    
  2. 重新排序的所有行/列

    data=data(idx,:) 
    
相關問題