MATLAB で 1 つの列に関して 2 次元配列を並べ替えるにはどうすればよいですか?
質問
特定の列に従って行列を並べ替えたいと考えています。があります sort
関数ですが、すべての列を個別にソートします。
たとえば、私の行列の場合、 data
は:
1 3
5 7
-1 4
この場合、目的の出力 (最初の列でソート) は次のようになります。
-1 4
1 3
5 7
しかし、の出力は sort(data)
は:
-1 3
1 4
5 7
この行列を最初の列で並べ替えるにはどうすればよいでしょうか?
解決
私は思います 並べ替え 関数はあなたが探しているものです。
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
他のヒント
の代替案 sortrows()
, 、より幅広いシナリオに適用できます。
並べ替える行/列の並べ替えインデックスを保存します。
[~,idx]=sort(data(:,1));
以前にソートされたインデックスに従ってすべての行/列を並べ替えます。
data=data(idx,:)
所属していません StackOverflow