[構文の説明]
- B = sort(A);入力パラメーターAのさまざまな次元の方向に沿って、Aの要素を小さいものから大きいものに再配置します。Aは、文字列、実数、または複雑なセル配列にすることができます。Aが複素数の場合、要素の振幅の降順で配置されます。同じ振幅の複雑な要素がある場合、それらは最大から最小の大きさ[-π、π]の順序で配置されます。Aが文字列の場合、ASCII辞書順にソートされます。ベクトルAの場合、sort(A)はAの要素を昇順で並べ替えます。行列Aの場合、sort(A)はAの各列を昇順で並べ替えます。
- Y = sort(X、DIM、MODE); 2つのオプションのパラメーターがあります。DIMは選択ソートのディメンションを表します。1は列のディメンションを表し、2は行のディメンションを表します。MODEは、選択ソートの方向を示します。「昇順」は昇順を意味し、「降順」は降順を意味します。
- [Y、I ] = Sort(X-、DIM、MODE);インデックス行列Iを返します。Aがベクトルの場合、Y = X(I)です。Aがm×n行列(DIM = 1;)の場合、Iの各列は、Aの列ベクトルの要素に対応する順列ベクトルであり、j = 1:nの場合、Y(:、j)= X(I(:、j)、j);終了。
【例説明】
- 例1:行列aを列の昇順で並べ替え、インデックス行列の役割を検討します。(インデックスマトリックスは、再配置後の元のベクトル内の要素の位置を明らかにします)
a = magic(3)
a =
8 1 6
3 5 7
4 9 2
[y、i] = sort(a)
y =
3 1 2
4 5 6
8 9 7
i =
2 1 3
3 2 1
1 3 2
j = 1:3の場合、b(:、j)= a(i(:、j)、j); 終了
b
b =
3 1 2
4 5 6
8 9 7
- 例2:行列Aで固有値分解を実行し、その固有値を昇順で配置し、それに応じて固有対角行列と固有ベクトルの順序を調整します。(次の例は、インデックスマトリックスの役割をよりよく説明できます)
A = magic(3)
A =
8 1 6
3 5 7
4 9 2
[V、D] = eig(A)
V =
-0.5774 -0.8131 -0.3416
-0.5774 0.4714 -0.4714
-0.5774 0.3416 0.8131
D =
15.0000 0 0
0 4.8990 0
0 0 -4.8990
[d、i] = sort(diag(D))
d =
-4.8990
4.8990
15.0000
i =
3
2
1
D = D(i、i)
D =
-4.8990 0 0
0 4.8990 0
0 0 15.0000
V = V(:、i)%Vの列ベクトルは、Dの調整順序に従って調整されます。
V =
-0.3416 -0.8131 -0.5774
-0.4714 0.4714 -0.5774
0.8131 0.3416 -0.5774