ドキュメンテーション

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

sort

配列要素の並べ替え

構文

  • B = sort(A)
  • B = sort(A,dim)
  • B = sort(___,direction)
  • [B,I] = sort(___)

説明

B = sort(A)A の要素を、サイズが 1 ではない最初の配列次元に沿って昇順に並べ替えます。

  • A がベクトルの場合、sort(A) はベクトル要素を並べ替えます。

  • A が行列の場合、sort(A)A の列をベクトルとして扱い、各列を並べ替えます。

  • A が多次元配列の場合、sort(A) は、サイズが 1 でない最初の配列次元に対して作用します。ここでは要素をベクトルとして扱います。

B = sort(A,dim) は、次元 dim に沿って並べ替えられた A の要素を返します。たとえば、A が行列である場合、sort(A,2) は各行の要素を並べ替えます。

B = sort(___,direction) は、前述の構文のいずれかを使って direction で指定された順序で並べ替えられた A の要素を返します。単一文字列 'ascend' は昇順 (既定) を示し、'descend' は降順を示します。

[B,I] = sort(___) は、前述の任意の構文でインデックス ベクトルの集合も返します。IA と同じサイズで、並べ替えられた次元に沿った A の要素の B への配置を示します。たとえば、A が数値ベクトルの場合、B = A(I) となります。

すべて折りたたむ

行ベクトルを作成してその要素を昇順に並べ替えます。

A = [9 0 -7 5 3 8 -10 4 2];
B = sort(A)
B =

   -10    -7     0     2     3     4     5     8     9

行列を作成してその各行を昇順に並べ替えます。

A = [3 6 5; 7 -2 4; 1 0 -9]
A =

     3     6     5
     7    -2     4
     1     0    -9

B = sort(A,2)
B =

     3     5     6
    -2     4     7
    -9     0     1

行列を作成してその列を降順に並べ替えます。

A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
A =

    10   -12     4     8
     6    -9     8     0
     2     3    11    -2
     1     1     9     3

B = sort(A,'descend')
B =

    10     3    11     8
     6     1     9     3
     2    -9     8     0
     1   -12     4    -2

datetime 値の配列を作成し、昇順で古い日付から新しい日付に並べ替えます。

ds = {'2012-12-22';'2063-04-05';'1992-01-12'};
A = datetime(ds,'Format','yyyy-MM-dd')
A = 

   2012-12-22
   2063-04-05
   1992-01-12

[B,I] = sort(A)
B = 

   1992-01-12
   2012-12-22
   2063-04-05


I =

     3
     1
     2

B は、並べ替えられた日付を一覧表示し、I は、対応する A のインデックスを含みます。

並べ替えた要素に元の配列から直接アクセスするには、インデックス配列 I を使用します。

A(I)
ans = 

   1992-01-12
   2012-12-22
   2063-04-05

2 x 2 x 2 の配列を作成し、要素を 3 番目の次元に沿って昇順に並べ替えます。

A(:,:,1) = [2 3; 1 6];
A(:,:,2) = [-1 9; 0 12];
A
A(:,:,1) =

     2     3
     1     6


A(:,:,2) =

    -1     9
     0    12

B = sort(A,3)
B(:,:,1) =

    -1     3
     0     6


B(:,:,2) =

     2     9
     1    12

A のすべての要素を並べ替えるには、A の列表現 A(:) を使用します。

B = sort(A(:))
B =

    -1
     0
     1
     2
     3
     6
     9
    12

入力引数

すべて折りたたむ

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

  • A がスカラーの場合、sort(A)A を返します。

  • A が 0 行 0 列の空の行列である場合、sort(A) は 0 行 0 列の空の行列を返します。

  • ANaN 値や未定義の categorical 要素または datetime 要素がある場合、sort(A) はこれらを並べ替えの上位に (大きい数値であるかのように) 配置します。

  • A が複素数の場合、関数 sort(A) は要素を大きさの順に並べ替えます。大きさの等しい要素が複数ある場合、区間 [−π, π] で位相角の順にこれらの要素を並べ替えます。

  • A が文字列の場合、sort(A) は ASCII 辞書順に並べ替えます。並べ替えでは大文字と小文字が区別され、大文字の後に小文字が出力されます。

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

動作する対象の次元。正の整数のスカラーとして指定します。値が指定されていない場合、既定はサイズが 1 ではない最初の配列次元です。

2 次元の入力配列 A について考えます。

  • sort(A,1)A の列の要素を並べ替えます。

  • sort(A,2)A の行の要素を並べ替えます。

dimndims(A) より大きい場合、sortA を返します。A がセル配列の場合、dim はサポートされません。

並べ替える方向。'ascend' または 'descend' として指定します。A がセル配列の場合、direction はサポートされません。

例: sort(A,2,'descend') は、A の行を降順に並べ替えます。

データ型: char

出力引数

すべて折りたたむ

並べ替えられた配列。A と同じサイズおよび型のベクトル、行列または多次元配列として返されます。B で要素を並べ替えることで、A 内の等しい要素の順序を保持します。

並べ替えインデックス。A と同じサイズのベクトル、行列または多次元配列として返されます。インデックス ベクトルは sort が作用する次元に沿って方向付けされます。たとえば、A が 2 行 3 列の行列である場合、[B,I] = sort(A,2)A の各行の要素を並べ替え、I は並べ替えの配置を示す 1 行 3 列の行インデックス ベクトルの集合になります。dim を指定しない場合、[B,I] = sort(A)A の列を並べ替え、I は 2 行 1 列の列インデックス ベクトルの集合になります。

詳細

すべて折りたたむ

ヒント

  • 関数 sortrows は、非ベクトル入力配列の複数の列にわたるサブソート機能の柔軟性を高めます。

  • 関数 sort と関係演算子は、複素数に対して異なる並べ替えを使用します。詳細は、「関係演算」を参照してください。

参考

| | | | | |

R2006a より前に導入

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