Main Content

sortrows

(非推奨) データセット配列の行の並べ替え

dataset データ型は推奨されません。異種混合データを処理するには、代わりに MATLAB® table データ型を使用します。詳細は、MATLAB table ドキュメンテーションを参照してください。

構文

B = sortrows(A)
B = sortrows(A,vars)
B = sortrows(A,'obsnames')
B = sortrows(A,vars,mode)
[B,idx] = sortrows(A)

説明

B = sortrows(A) は、データセット配列 A をコピーして、A のすべての変数で観測値を昇順に並べ替えたものを返します。B の観測値は、最初に最初の変数で、2 番目に 2 番目の変数で、のような順で並べ替えられています。A の各変数は、sort への有効な入力でなければなりません。また、変数に複数の列が含まれる場合は、MATLAB sortrows 関数または独自の sortrows メソッドへの有効な入力でなければなりません。

B = sortrows(A,vars) は、vars で指定された変数によって A 内の観測値を並べ替えます。vars は、正の整数、正の整数のベクトル、文字ベクトル、string 配列、文字ベクトルの cell 配列、または logical ベクトルです。

B = sortrows(A,'obsnames')A の観測値を観測名ごとに並べ替えます。

B = sortrows(A,vars,mode) は、mode で指定した方向に並べ替えを行います。mode'ascend' (既定の設定) または 'descend' である場合、sortrowsvars で指定された変数に基づき、それぞれ昇順または降順で A を並べ替えます。mode'ascend' または 'descend' が含まれている cell 配列または string 配列にして、vars 内の変数ごとに異なる並べ替え順序を指定することもできます。vars として [] を指定すると、並べ替えにすべての変数を使用します。

[B,idx] = sortrows(A) は、B = A(idx,:) となるインデックス ベクトル idx も返します。

hospital.mat のデータを年齢で、次に姓で、並べ替えます。

load hospital
hospital(1:5,1:3)
ans = 
            LastName       Sex       Age
 YPL-320    'SMITH'        Male      38 
 GLI-532    'JOHNSON'      Male      43 
 PNI-258    'WILLIAMS'     Female    38 
 MIJ-579    'JONES'        Female    40 
 XLK-030    'BROWN'        Female    49 

hospital = sortrows(hospital,{'Age','LastName'});
hospital(1:5,1:3)
ans = 
            LastName       Sex       Age
 REV-997    'ALEXANDER'    Male      25 
 FZR-250    'HALL'         Male      25 
 LIM-480    'HILL'         Female    25 
 XUE-826    'JACKSON'      Male      25 
 SCQ-914    'JAMES'        Male      25 

hospital のデータを、性別の昇順および年齢の降順に並べ替えます。

hospital = sortrows(hospital,{'Sex','Age'},{'ascend','descend'});
hospital(1:5,1:3)
ans = 

               LastName        Sex       Age
    XLK-030    'BROWN'         Female    49 
    GGU-691    'HUGHES'        Female    49 
    KKL-155    'ADAMS'         Female    48 
    HQO-561    'BRYANT'        Female    48 
    BKD-785    'CLARK'         Female    48 

hospital(end-4:end,1:3)
ans = 

               LastName           Sex     Age
    VNL-702    'MOORE'            Male    28 
    REV-997    'ALEXANDER'        Male    25 
    FZR-250    'HALL'             Male    25 
    XUE-826    'JACKSON'          Male    25 
    SCQ-914    'JAMES'            Male    25 

参考

|