MATLAB研究ノート(1)-ソート関数

[構文の説明]

  • 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

おすすめ

転載: blog.csdn.net/weixin_42467801/article/details/104704129