行列を行ごとにソートする
sortrows
とsortcols
は、廃止になりました。sortslices
を使います。以下参照。
MATLABのsortrows(X, 2)
N-by-2行列 X の、2列目を評価して、行ごとに並べ替える。(昇順)
X = [5 3; 2 6; 4 2] sortrows(X, by=x->x[2])
3x2 Array{Int64,2}:
4 2
5 3
2 6
x
はダミー変数なので、お好きな文字を。- 降順にならべるときは、
rev = true
をsortrowsのなかに追加する。
複数の条件でsortrowsする
2列目、3列目の順で評価するには、
X = [5 2 1; 2 6 1; 4 2 3] sortrows(X, by=x->(x[2],x[3]))
3x3 Array{Int64,2}:
5 2 1
4 2 3
2 6 1
列ごとに異なる順序でsortrowsする
rev
を使わずに、-
で降順を指定することもできる。
これを使うと、1列目は昇順、2列目は降順、3列目は昇順、というようなsortrowsができる:
X = [5 2 1; 2 6 1; 5 2 3; 5 3 0] sortrows(X, by=x->(x[1],-x[2],x[3]))
4x3 Array{Int64,2}:
2 6 1
5 3 0
5 2 1
5 2 3