ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

sortrows

行の昇順の並べ替え

構文

  • B = sortrows(A)
  • B = sortrows(A,column)
  • [B,index] = sortrows(A,...)
  • 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 の行を昇順に並べ替えます。引数 A は、行列または列ベクトルでなければなりません。

文字列では、この並べ替えは辞書順として知られています。

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

B = sortrows(A,column) は、ベクトル column で指定された列をベースに行列を並べ替えます。column の要素が正の場合、MATLAB® は、行列 A の対応する列を昇順に並べ替えます。column の要素が負の場合、MATLAB は、対応する列を降順に並べ替えます。たとえば、sortrows(A,[2 -3]) は、2 列目を使用して、A の行を並べ替え、それらが等しい場合、3 列目を使用して並べ替えます。

[B,index] = sortrows(A,...) は、インデックス ベクトル index も返します。

A が列ベクトルの場合、B = A(index) です。Amn 列の行列の場合、B = A(index,:) になります。

tblB = sortrows(tblA) は、テーブル tblA の行を、最初に先頭の変数で、その次に 2 番目の変数でというように昇順で並べ替えます。tblA の各変数は、sort または sortrows に対する有効な入力でなければなりません。

tblB = sortrows(tblA,'RowNames') は、tblA の行を行名で並べ替えます。tblA.Properties.RowNames が空である場合、sortrows(tblA,'RowNames')tblA を返します。

tblB = sortrows(tblA,vars) は、vars で指定された変数で並べ替えを行います。入力引数 vars は、整数、整数のベクトル、変数名、1 つまたは複数の変数名を含むセル配列または論理ベクトルとして指定できます。

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

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

tblB = sortrows(tblA,vars,mode) は、mode で指定された方向で tblA を並べ替えます。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

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

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

入力引数を 2 つ使用して関数 sortrows を呼び出す場合は、2 番目の引数で指定された列に基づいて並べ替えます。指定された列に等しい要素がある行 (行列 A を 2 列目で並べ替える場合の A(2:4,:) など) は、元の順番のまま維持されます。

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

この例では、1 列目と 7 列目を指定して並べ替えます。これにより、関数 sortrows は、まず 1 列目を基準にに並べ替えを実行し、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

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

E = 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

テーブルの行の並べ替え

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

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

参考

|

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