45

特定の列に従って行列を並べ替えたいと思います。関数はありますが、sortすべての列を個別にソートします。

たとえば、私の行列dataが次の場合:

 1     3
 5     7
-1     4

次に、目的の出力 (最初の列で並べ替え) は次のようになります。

-1     4
 1     3
 5     7

しかし、の出力sort(data)は次のとおりです。

-1     3
 1     4
 5     7

この行列を最初の列で並べ替えるにはどうすればよいですか?

4

2 に答える 2

75

sortrows関数はあなたが探しているものだと思います。

>> sortrows(data,1)

ans =

    -1     4
     1     3
     5     7
于 2008-09-25T18:34:42.987 に答える
5

sortrows()より広いシナリオに適用できるの代替。

  1. 並べ替えたい行/列の並べ替えインデックスを保存します。

    [~,idx]=sort(data(:,1));
    
  2. 以前にソートされたインデックスに従って、すべての行/列を並べ替えます

    data=data(idx,:)
    
于 2016-03-06T21:27:31.423 に答える