ドキュメンテーション

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

sort

シンボリック ベクトルまたは行列の要素の並べ替え

構文

  • Y = sort(X)
  • [Y,I] = sort(___)
  • ___= sort(X,dim)
  • ___= sort(___,'descend')

説明

Y = sort(X) は、シンボリック ベクトルまたは行列の要素を昇順に並べ替えます。X がベクトルの場合、sort(X)X の要素を辞書式順序に並べ替えます。X が行列の場合、sort(X)Xの各列を並べ替えます。

[Y,I] = sort(___) は、Y の各要素が元のベクトルまたは行列 X でもっていたインデックスを表示します。

Xmn 列の行列で、各列の要素 (dim = 2) を並べ替える場合、I の各列は、次のような X の列に対応する列の置換ベクトルです。

for j = 1:n
    Y(:,j) = X(I(:,j),j); 
end

X が 2 次元行列で、各列の要素を並べ替えると、配列 IY の要素が元の行列 X でもっていた行のインデックスを表示します。各行の要素を並べ替えると、I は、元の列のインデックスを表示します。

___= sort(X,dim) は、次元 dim に沿って X の要素を並べ替えます。したがって、X が 2 次元行列である場合、sort(X,1)X の各例の要素を並べ替え、sort(X,2) は各行の要素を並べ替えます。

___= sort(___,'descend') は、X を降順に並べ替えます。既定の設定では、sort は昇順に並べ替えます。

ベクトルの要素の並べ替え

既定の設定により、sort はベクトルまたは行列の要素を昇順に並べ替えます。

次のシンボリック ベクトルの要素を並べ替えます。

syms a b c d e
sort([7 e 1 c 5 d a b])
ans =
[ 1, 5, 7, a, b, c, d, e]

並べ替えされた行列の要素が元の行列でもっていたインデックスの検出

新しいベクトルまたは行列 Y の各要素が元のベクトルまたは行列 X でもっていたインデックスを検出するために、2 つの出力引数を使用する行列 sort を呼び出します。

行列 X を並べ替え、並べ替えられた行列の各要素が X でもっていたインデックスの行列を返します。

X = sym(magic(3));
[Y, I] = sort(X)
Y =
[ 3, 1, 2]
[ 4, 5, 6]
[ 8, 9, 7]

I =
     2     1     3
     3     2     1
     1     3     2

行列の行と列の並べ替え

行列の要素を並べ替える際、sort を使用して行列の列と行を並べ替えることができます。

次のシンボリック行列の要素を並べ替えます。

X = sym(magic(3))
X =
[ 8, 1, 6]
[ 3, 5, 7]
[ 4, 9, 2]

既定の設定では、sort コマンドは各列の要素を並べ替えます。

sort(X)
ans =
[ 3, 1, 2]
[ 4, 5, 6]
[ 8, 9, 7]

各行の要素を並べ替えるには、dim オプションの値を 2 に設定します。

sort(X,2)
ans =
[ 1, 6, 8]
[ 3, 5, 7]
[ 2, 4, 9]

降順の並べ替え

sort は、ベクトルまたは行列の要素を降順に並べ替えます。

次のベクトルの要素を降順に並べ替えます。

syms a b c d e
sort([7 e 1 c 5 d a b], 'descend')
ans =
[ e, d, c, b, a, 7, 5, 1]

次の行列 X の各列の要素を降順に並べ替えます。

X = sym(magic(3))
sort(X,'descend')
X =
[ 8, 1, 6]
[ 3, 5, 7]
[ 4, 9, 2]
 
ans =
[ 8, 9, 7]
[ 4, 5, 6]
[ 3, 1, 2]

次に、X の各行の要素を降順に並べ替えます。

sort(X, 2, 'descend')
ans =
[ 8, 6, 1]
[ 7, 5, 3]
[ 9, 4, 2]

入力引数

すべて展開する

X — 並べ替えを必要とする入力シンボリック ベクトル | シンボリック行列

並べ替えを必要とする入力。シンボリック ベクトルまたは行列として指定します。

dim — 動作する対象の次元正の整数

動作する対象の次元。正の整数として指定します。既定値は、1 です。dimX の次元数を上回る場合は、sort(X,dim)X を返し、[Y,I] = sort(X,dim)Y = XI = ones(size(X)) を返します。

出力引数

すべて展開する

Y — 並べ替えられた出力シンボリック ベクトル | シンボリック行列

並べ替えられた出力。シンボリック ベクトルまたは行列として返されます。

IY の要素が X でもっていたインデックス。シンボリック ベクトル | シンボリック行列

Y の要素が X でもっていたインデックス。シンボリック ベクトルまたは行列として返します。値 dimX の次元数を上回る場合は、[Y,I] = sort(X,dim) は行列 I = ones(size(X)) も返します。

詳細

すべて展開する

ヒント

  • シンボリック オブジェクトではないベクトルまたは行列の数値に対して sort を呼び出すと、MATLAB® 関数 sortが実行されます。

  • 複素数の入力 X では、sortabs(X) により計算された大きさ (複素係数) で要素を比較します。複素数が同じ複素係数をもつ場合は、sort は位相角 angle(X) を比較します。

  • 'descend' の代わりに 'ascend' を使用すると、sort は既定設定の場合と同じく昇順で要素を返します。

  • sort は、以下のルールを使用します。

    • シンボリックな数値と浮動小数点数を数値的に並べ替えます。

    • シンボリック変数をアルファベット順に並べ替えます。

    • シンボリック式と関数を含むその他のすべての場合、sort は MuPAD® がこれらのオブジェクトを格納するために使用する内部の順序が適用されます。

参考

|

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