ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

sortrows

構文

  • B = sortrows(A)
  • B = sortrows(A,column)
  • [B,index] = sortrows(___)
  • tblB = sortrows(tblA)
  • tblB = sortrows(tblA,'RowNames')
  • tblB = sortrows(tblA,vars)
  • tblB = sortrows(tblA,mode)
  • tblB = sortrows(tblA,'RowNames',mode)
  • tblB = sortrows(tblA,vars,mode)
  • [tblB,index] = sortrows(tblA,___)

説明

B = sortrows(A) は、A の行を昇順に並べ替えます。文字列では、この並べ替えは辞書順として知られています。

B = sortrows(A,column) はベクトル column で指定された列に基づいて行列 A を並べ替えます。この入力を使用して、複数の列の並べ替えを連続して実行します。

[B,index] = sortrows(___) は、上記の構文のいずれかを使用してインデックス ベクトルも返します。インデックス ベクトルは B = A(index,:) を満たします。

tblB = sortrows(tblA) はテーブル tblA の行を、最初に先頭の変数で、その次に 2 番目の変数でというように昇順で並べ替えます。

tblB = sortrows(tblA,'RowNames') は行名で並べ替えます。

tblB = sortrows(tblA,vars) は、vars で指定された変数で並べ替えを行います。

tblB = sortrows(tblA,mode) および tblB = sortrows(tblA,'RowNames',mode) は、mode で指定された順序で tblA を並べ替えます。単一文字列 'ascend' は昇順 (既定) を示し、'descend' は降順を示します。

tblB = sortrows(tblA,vars,mode)mode を使用して並べ替え順序を指定します。mode は、昇順 (既定) の場合は 'ascend'、降順の場合は 'descend' を含む単一文字列または文字列のセル配列として指定できます。

  • mode が単一文字列の場合、sortrows は、vars のすべての変数を指定された方向で並べ替えます。

  • mode が文字列のセル配列の場合、sortrows は、vars の各変数に対して、指定された方向で並べ替えを行います。

[tblB,index] = sortrows(tblA,___) は、tblB = tblA(index,:) となるようなインデックス ベクトル index も返します。

すべて折りたたむ

行列の行の並べ替え

任意の行列 A から開始します。

A = floor(gallery('uniformdata',[6 7],0)*100);
A(1:4,1) = 95;  A(5:6,1) = 76;  A(2:4,2) = 7;  A(3,3) = 73
A =
    95    45    92    41    13     1    84
    95     7    73    89    20    74    52
    95     7    73     5    19    44    20
    95     7    40    35    60    93    67
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1

A の行を並べ替えます。

B = sortrows(A)
B =
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1
    95     7    40    35    60    93    67
    95     7    73     5    19    44    20
    95     7    73    89    20    74    52
    95    45    92    41    13     1    84

入力引数を 1 つ使用して関数 sortrows を呼び出す場合は、行列の 1 列目に基づいて並べ替えます。特定の列に等しい要素がある行 (A(1:4,1) など) の並べ替えは、そのすぐ右にある列に基づいて行われます (この例では A(1:4,2))。

入力引数を 2 つ使用して関数 sortrows を呼び出す場合は、2 番目の引数で指定された列に基づいて並べ替えます。

A の行を 2 列目の値に基づいて並べ替えます。

C = sortrows(A,2)
C =
    95     7    73    89    20    74    52
    95     7    73     5    19    44    20
    95     7    40    35    60    93    67
    95    45    92    41    13     1    84
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1

指定された列に等しい要素がある行 (行列 A を 2 列目で並べ替える場合の A(2:4,:) など) は、元の順序のまま維持されます。

並べ替えの基準として 2 つの列を指定します。列 1 と列 7。

D = sortrows(A,[1 7])
D =
    76    79    91     0    19    41     1
    76    61    93    81    27    46    83
    95     7    73     5    19    44    20
    95     7    73    89    20    74    52
    95     7    40    35    60    93    67
    95    45    92    41    13     1    84

sortrows は、まず 1 列目を基準に並べ替えを実行し、次に 1 列目に等しい値がある行について 7 列目を基準に並べ替えます。

4 列目の値を使用して行を降順で並べ替えます。

[E,index] = sortrows(A, -4)
E =

    95     7    73    89    20    74    52
    76    61    93    81    27    46    83
    95    45    92    41    13     1    84
    95     7    40    35    60    93    67
    95     7    73     5    19    44    20
    76    79    91     0    19    41     1


index =

     2
     5
     1
     4
     3
     6

インデックス ベクトル indexE = A(index,:) のように行の並べ替えを示します。

セル配列の行の並べ替え

6 行 2 列の文字列のセル配列を作成します。

A = {'Germany' 'Lukas'; 'USA' 'William'; 'USA' 'Andrew'; ...
'Germany' 'Andreas'; 'USA' 'Olivia'; 'Germany' 'Julia'} 
A = 

    'Germany'    'Lukas'  
    'USA'        'William'
    'USA'        'Andrew' 
    'Germany'    'Andreas'
    'USA'        'Olivia' 
    'Germany'    'Julia'  

結果は国と名前のリストです。

A の行を並べ替えます。

B = sortrows(A)
B = 

    'Germany'    'Andreas'
    'Germany'    'Julia'  
    'Germany'    'Lukas'  
    'USA'        'Andrew' 
    'USA'        'Olivia' 
    'USA'        'William'

結果は国と名前の両方でアルファベット順に並べ替えられたリストです。

2 列目の名前を降順に並べ替えます。

[C,index] = sortrows(A,[1 -2])
C = 

    'Germany'    'Lukas'  
    'Germany'    'Julia'  
    'Germany'    'Andreas'
    'USA'        'William'
    'USA'        'Olivia' 
    'USA'        'Andrew' 


index =

     1
     6
     4
     2
     5
     3

インデックス ベクトル indexC = A(index,:) のように行の並べ替えを示します。

テーブルの行の並べ替え

テーブルの行を変数値で昇順に並べ替えます。

5 人の患者情報を示す 4 つの変数を含むテーブルを作成します。

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
tblA = 

                Age    Height    Weight     BloodPressure 
                ---    ------    ------    ---------------
    Smith       38     71        176       124          93
    Johnson     43     69        163       109          77
    Williams    38     64        131       125          83
    Jones       40     67        133       117          75
    Brown       49     64        119       122          80

テーブルの行を並べ替えます。

tblB = sortrows(tblA)
tblB = 

                Age    Height    Weight     BloodPressure 
                ---    ------    ------    ---------------
    Williams    38     64        131       125          83
    Smith       38     71        176       124          93
    Jones       40     67        133       117          75
    Johnson     43     69        163       109          77
    Brown       49     64        119       122          80

関数 sortrows は、最初に変数 Age で、次に変数 Height で行を昇順に並べ替えます。

テーブルの行の行名での並べ替え

5 人の患者情報を示す 4 つの変数を含むテーブルを作成します。

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
tblA = 

                Age    Height    Weight     BloodPressure 
                ---    ------    ------    ---------------
    Smith       38     71        176       124          93
    Johnson     43     69        163       109          77
    Williams    38     64        131       125          83
    Jones       40     67        133       117          75
    Brown       49     64        119       122          80

テーブルの行を行名で並べ替え、tblB = tblA(index,:) となるようなインデックス ベクトルを返します。

[tblB,index] = sortrows(tblA,'RowNames')
tblB = 

                Age    Height    Weight     BloodPressure 
                ---    ------    ------    ---------------
    Brown       49     64        119       122          80
    Johnson     43     69        163       109          77
    Jones       40     67        133       117          75
    Smith       38     71        176       124          93
    Williams    38     64        131       125          83


index =

     5
     2
     4
     1
     3

関数 sortrows は、行名で昇順に行を並べ替えます。

テーブルの行の変数での並べ替え

5 人の患者情報を示す 4 つの変数を含むテーブルを作成します。

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
tblA = 

                Age    Height    Weight     BloodPressure 
                ---    ------    ------    ---------------
    Smith       38     71        176       124          93
    Johnson     43     69        163       109          77
    Williams    38     64        131       125          83
    Jones       40     67        133       117          75
    Brown       49     64        119       122          80

テーブルの行を Height で昇順に、次に Weight で降順に並べ替えます。また、tblB = tblA(index,:) となるようなインデックス ベクトルも返します。

[tblB,index] = sortrows(tblA,{'Height','Weight'},{'ascend','descend'})
tblB = 

                Age    Height    Weight     BloodPressure 
                ---    ------    ------    ---------------
    Williams    38     64        131       125          83
    Brown       49     64        119       122          80
    Jones       40     67        133       117          75
    Johnson     43     69        163       109          77
    Smith       38     71        176       124          93


index =

     3
     5
     4
     2
     1

入力引数

すべて折りたたむ

A — 入力配列列ベクトル | 行列

入力配列。列ベクトルまたは行列として指定します。A のデータ型は、数値、logicalcharcell、カテゴリカル、datetime または duration です。ANaN 値や未定義のカテゴリカル要素または datetime 要素がある場合、sortrows(A) はこれらを並べ替えの上位に (大きい数値であるように) 配置します。

A が複素数の場合、sortrows は要素を大きさ順に並べ替え、大きさが等しければ、さらに区間 [−π, π] で位相角の順に並べ替えます。

複素数のサポート: はい

column — 列並べ替えベクトル整数のベクトル

列並べ替えベクトル。整数のベクトルとして指定します。各整数値は並べ替えの基準にする列を示します。整数の符号は昇順 (正) または降順 (負) の並べ替え順序を示します。

例: sortrows(A,[2 -3]) は、まず 2 列目で A の行を昇順に並べ替え、次に 3 列目で降順に並べ替えます。

tblA — 入力テーブルテーブル

テーブルとして指定される入力テーブル。tblA の各変数は、sort または sortrows に対する有効な入力でなければなりません。

データ型: table

'RowNames' — 行並べ替え入力文字列

行並べ替え入力。文字列 'RowNames' として指定します。'RowNames' オプションを指定して、変数ではなく行名でテーブルを並べ替えます。tblA.Properties.RowNames が空である場合、sortrows(tblA,'RowNames')tblA を返します。

vars — 変数の並べ替え整数 | 整数のベクトル | 変数名 | 変数名のセル配列 | 論理ベクトル

変数の並べ替え。整数、整数のベクトル、変数名、変数名のセル配列、論理ベクトルとして指定します。vars は並べ替えの基準となるテーブル変数を示します。または、mode 入力を使用して、各並べ替え変数の昇順または降順を示すこともできます。

vars の要素が正の整数の場合、sortrows は、tblA の対応する変数を昇順に並べ替えます。vars の要素が負の整数の場合、sortrows は、tblA の対応する変数を降順に並べ替えます。mode 入力引数を指定すると、MATLAB® は整数の符号を無視します。

例: sortrows(tblA,{'Height','Weight'})tblA の行を、最初に変数 Height で、次に変数 Weight で昇順に並べ替えます。

例: sortrows(tblA,[1 4],{'descend' 'ascend'})tblA の最初の変数を降順に並べ替え、次に 4 番目の変数を昇順に並べ替えます。

mode — 並べ替えモード単一の文字列 | 文字列のセル配列

並べ替えモード。'ascend' (既定) または 'descend' オプションから構成される、単一の文字列または文字列のセル配列として指定します。mode が文字列のセル配列の場合、必要なエントリ数は変数と行名のどちらで並べ替えるかによって異なります。

  • tblA を変数で並べ替える場合は、セル配列には各変数に対するエントリがなければなりません。

  • tblA を行名で並べ替える場合は、セル配列には 1 つのエントリがなければなりません。

データ型: char | cell

出力引数

すべて折りたたむ

B — 並べ替えられた配列配列

並べ替えられた配列。A と同じサイズおよびクラスの配列として返されます。

tblB — 並べ替えられたテーブルテーブル

並べ替えられたテーブル。tblA と同じ変数をもつテーブルとして返されます。

index — 並べ替えインデックスインデックス ベクトル

並べ替えインデックス。インデックス ベクトルとして返されます。並べ替えインデックスは入力の要素または行の並べ替えを示します。

参考

|

この情報は役に立ちましたか?