Main Content

issortedrows

行列または table の行が並べ替えされているかどうかを判別

説明

TF = issortedrows(A) は、行列 A の最初の列の要素が昇順でリストされている場合に、logical スカラー 1 (true) を返します。それ以外の場合には、issortedrows は 0 (false) を返します。最初の列に連続して繰り返される要素がある場合、issortedrows は次の列が昇順であるかどうかを判別し、この動作を後続の等しい値について繰り返します。

TF = issortedrows(A,column) は、ベクトル column で指定された列に基づいて A が並べ替えられている場合に 1 を返します。たとえば、issortedrows(A,[4 6]) は最初に A の 4 番目の列が昇順であるかどうかをチェックし、同順位の場合は次に 6 番目の列が昇順であるかどうかをチェックして順序を決定します。

TF = issortedrows(___,direction) は、上記のすべての構文について、A の最初の列が direction で指定された順序になっている場合に 1 を返します。たとえば、issortedrows(A,'monotonic')A の最初の列が昇順または降順になっているかどうかをチェックします。direction はチェック対象の各列に対して複数の方向を表す文字ベクトルの cell 配列にすることもできます。たとえば、issortedrows(A,[2 3],{'ascend' 'descend'})A の 2 番目の列が昇順になっているかどうかをチェックし、同順位の場合は次に 3 番目の列が降順になっているかどうかをチェックして、順序を決定します。

TF = issortedrows(___,Name,Value) は並べ替え順序をチェックするための追加パラメーターを指定します。たとえば、issortedrows(A,'ComparisonMethod','abs')A の最初の列にある要素が大きさの順に並べ替えられているかどうかをチェックします。

TF = issortedrows(tblA) は、table の行が最初の変数の要素に基づいて昇順になっているかどうかをチェックします。最初の変数の要素が繰り返されている場合、issortedrows は 2 番目の変数の要素をチェックします。以降の変数についても同様です。

tblA が timetable である場合、issortedrowstblA が行時間に基づいて昇順になっているかどうかをチェックします。timetable の行時間により、timetable の最初の次元に沿って行にラベルが設定されます。

TF = issortedrows(tblA,'RowNames') は、table の行が行名に基づいて昇順になっているかどうかをチェックします。table の行名により、table の最初の次元に沿って行にラベルが設定されます。

tblA が timetable である場合、この構文はサポートされません。

TF = issortedrows(tblA,rowDimName) は、table の行が最初の次元に沿って行ラベル rowDimName の順に並べ替えられているかどうかをチェックします。

  • tblA が table の場合、ラベルは行名です。

  • tblA が timetable の場合、ラベルは行時間です。

TF = issortedrows(tblA,vars) は、table の行が変数 vars の要素に基づいて昇順になっているかどうかをチェックします。たとえば、AgeWeighttblA の変数である場合、issortedrows(tblA,{'Age','Weight'}) は行が年齢の昇順になっているかどうかをチェックし、同順位の場合は次いで体重の昇順になっているかどうかをチェックして、順序を決定します。

  • tblA が行名をもつ table である場合、vars は行名を含むことができます。

  • tblA が timetable の場合、vars は行時間を含むことができます。

TF = issortedrows(___,direction) は、上記の table 構文のすべてについて、table が direction で指定された順序で並べ替えられているかどうかをチェックします。direction には 'descend''monotonic' などの単一の並べ替え順序を設定できます。これは指定した変数、行名または行時間のそれぞれに適用されます。また、direction は、issortedrows の動作対象として指定した変数、行名、行時間ごとに異なる並べ替え順序を含む要素をもつ cell 配列にすることもできます。

TF = issortedrows(___,Name,Value) は table を並べ替えるための追加パラメーターを指定します。たとえば、issortedrows(tblA,'Var1','MissingPlacement','first')Var1 の欠損要素 (NaNNaT など) が table の先頭に配置されていることをチェックします。

すべて折りたたむ

行列を作成し、その行列の行が最初の列の値に基づいて昇順になっているかどうかを判別します。最初の列には繰り返されている要素があるため、sortrows は 2 列目を調べて行列の行が並べ替えられているかどうかを判別します。

A = [1 2 9; 1 5 8; 4 0 7]
A = 3×3

     1     2     9
     1     5     8
     4     0     7

TF = issortedrows(A)
TF = logical
   1

A の行が 3 番目の列の値に基づいて昇順になっているどうかを判別します。

TF = issortedrows(A,3)
TF = logical
   0

A の行が 3 番目の列の値に基づいて降順になっているかどうかを判別します。

TF = issortedrows(A,3,'descend')
TF = logical
   1

複素数を含む行列を作成し、その行列の行が最初の列の要素の実数部に基づいて昇順になっているかどうかを判別します。最初の列の要素には等しい実数部があるため、issortedrows は虚数部をチェックして順序を決定します。

A = [1+i 2i; 1+2i 3+4i]
A = 2×2 complex

   1.0000 + 1.0000i   0.0000 + 2.0000i
   1.0000 + 2.0000i   3.0000 + 4.0000i

TF = issortedrows(A,'ComparisonMethod','real')
TF = logical
   1

5 人の患者情報が記録された table について、table の行の並べ替え方を決定します。

4 つの変数をもつ table を作成し、この table の行が年齢に基づいて昇順になっているかどうかを判別します。年齢変数には繰り返されている要素があるため、issortedrows は次の列 (Height) をチェックして順序を決定します。

LastName = {'Sweet';'Jacobson';'Wang';'Joiner';'Berger'};
Age = [38;38;40;43;49];
Height = [69;71;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=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Sweet       38       69       176       124     93  
    Jacobson    38       71       163       109     77  
    Wang        40       64       131       125     83  
    Joiner      43       67       133       117     75  
    Berger      49       64       119       122     80  

TF = issortedrows(tblA)
TF = logical
   1

table の行が姓を基準に並べ替えられているかどうかをチェックします。これは tblA の行名です。

TF = issortedrows(tblA,'RowNames')
TF = logical
   0

table の行が年齢に基づいて昇順になっているかどうか、次に体重に基づいて降順になっているかどうかをチェックします。

TF = issortedrows(tblA,{'Age','Weight'},{'ascend','descend'})
TF = logical
   1

timetable を作成し、この timetable の行が行時間に基づいて昇順になっていることをチェックします。また、欠損要素が最後に配置されていることをチェックします。

Time = [seconds(1:3) NaN NaN]';
TT = timetable(Time,[98;97.5;97.9;98.1;99.9],[120;111;119;117;112],...
               'VariableNames',{'Temperature','Distance'})
TT=5×2 timetable
     Time      Temperature    Distance
    _______    ___________    ________

    1 sec           98          120   
    2 sec         97.5          111   
    3 sec         97.9          119   
    NaN sec       98.1          117   
    NaN sec       99.9          112   

TF = issortedrows(TT,'Time','MissingPlacement','last')
TF = logical
   1

入力引数

すべて折りたたむ

入力配列。列ベクトルまたは行列として指定します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | categorical | datetime | duration
複素数のサポート: あり

列並べ替えベクトル。非ゼロ整数スカラーまたは非ゼロ整数のベクトルとして指定します。指定した整数値はそれぞれ並べ替え順序をチェックする列を表します。負の整数は並べ替え順序が降順であることを表します。

並べ替える方向。次のいずれかとして指定します。

  • 'ascend' (既定値) — データが昇順になっているかどうかをチェックします。データには連続して繰り返される要素を含めることができます。

  • 'descend' — データが降順になっているかどうかをチェックします。データには連続して繰り返される要素を含めることができます。

  • 'monotonic' — データが昇順または降順のいずれかになっているかどうかをチェックします。データには連続して繰り返される要素を含めることができます。

  • 'strictascend' — データが厳密に昇順になっているかどうかをチェックします。データに重複要素または欠損要素を含めることはできません。

  • 'strictdescend' — データが厳密に降順になっているかどうかをチェックします。データに重複要素または欠損要素を含めることはできません。

  • 'strictmonotonic' — データが厳密に昇順または降順になっているかどうかをチェックします。データに重複要素または欠損要素を含めることはできません。

direction はこれらの文字ベクトルのリストを含む cell 配列にすることもできます。この場合、リストの各要素は A の列に対応します。たとえば、issortedrows(A,[2 4],{'ascend' 'descend'}) は最初に、A の行が 2 番目の列に基づいて昇順になっているかどうかをチェックします。同順位の場合、次に issortedrows は行が 4 番目の列に基づいて降順になっているかどうかをチェックして順序を決定します。

column が指定されている場合、cell 配列の要素数は column の長さと一致しなければなりません。column が指定されていない場合、cell 配列に A のすべての列の要素、あるいはすべての列に適用される 1 つの要素が含まれていなければなりません。

データ型: char | cell

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

データ型: table | timetable

入力 table または timetable の最初の次元の名前。string スカラーまたは文字ベクトルとして指定します。

  • tblA が行名を含む table の場合、rowDimName は table の最初の次元の名前です。既定では、最初の次元の名前は 'Row' です。次元名は table のプロパティです。tblA.Properties.DimensionNames を使用すると tblA の次元名にアクセスできます。

  • tblA が timetable の場合、rowDimName は行時間のベクトルの名前です。timetable の作成時に TimeDate などの名前を指定できます。また、tblA.Properties.DimensionNames を使用して次元名にアクセスすることもできます。

例: table T に行名があり、かつ最初の次元の名前を T.Properties.DimensionName{1} = "Name" を使用して変更した場合、issortedrows(T,"Name") は table が行名順に並べ替えられているかどうかをチェックします。

例: timetable TTDate という名前の時間ベクトルがある場合、issortedrows(TT,"Date") は timetable が Date に格納されている日時の順に並べ替えられているかどうかをチェックします。

データ型: string | char

並べ替え基準となる変数。スカラー整数、整数のベクトル、変数名、変数名の string 配列、変数名の cell 配列、pattern スカラー、または logical ベクトルとして指定します。vars は並べ替えの基準となる table 変数を示します。

vars の要素が正の整数である場合、issortedrowstblA の対応する変数の行が昇順になっているかどうかをチェックします。vars の要素が負の整数である場合、issortedrowstblA の対応する変数の行が降順であるかどうかをチェックします。

例: issortedrows(tblA,["Height","Weight"])tblA の行が昇順になっているかどうかをチェックします。最初は変数 Height を基準とし、同順位の場合は次に Weight を基準として順序を決定します。

例: issortedrows(tblA,"X" + wildcardPattern) は、名前が文字 "X" で始まる table 変数を基準に tblA の行が昇順に並んでいるかどうかをチェックします。ここでは、ワイルドカード パターンを使用して名前の残りの部分と一致させています。

例: issortedrows(tblA,[1 4]) は最初に table の行が最初の変数に基づいて昇順になっているかどうかをチェックし、次に行が 4 番目の変数に基づいて昇順になっているかどうかをチェックして同順位の場合の順序を決定します。

例: issortedrows(TT,["Time","X"]) は timetable の行時間が昇順になっているかどうかをチェックし、次に行が table 変数 X に基づいて昇順になっているかどうかをチェックして同順位の場合の順序を決定します。

データ型: double | single | string | char | cell | pattern | logical

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: issortedrows(A,'MissingPlacement','last')

欠損値 (NaNNaT<undefined>missing) の配置。'MissingPlacement' と、次のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'auto' — 1 を返すには、欠損値が昇順の場合は最後、降順の場合は最初に配置されていることが必要です。

  • 'first' — 1 を返すには、欠損値が最初に配置されていることが必要です。

  • 'last' — 1 を返すには、欠損値が最後に配置されていることが必要です。

要素の比較方法。'ComparisonMethod' と以下のいずれかで構成される、コンマ区切りペアとして指定します。

  • 'auto'A が実数の場合は A の行が real(A) の順に並べ替えられているかどうかをチェックし、A が複素数の場合は A の行が abs(A) の順に並べ替えられているかどうかをチェックします。

  • 'real'A が実数または複素数の場合に、A の行が real(A) の順に並べ替えられているかどうかをチェックします。等しい実数部をもつ要素が連続して列に存在する場合、次に imag(A) をチェックして順序を決定します。

  • 'abs'A が実数または複素数の場合に、A の行が abs(A) の順に並べ替えられているかどうかをチェックします。大きさの等しい要素が連続して列に存在する場合、次に区間 (-π,π] で angle(A) をチェックして順序を決定します。

拡張機能

バージョン履歴

R2017a で導入