21.1.2创建排列矩阵

对于创建置换矩阵,Octave没有引入新的函数,而是覆盖了现有的语法:通过用置换向量索引单位矩阵,可以方便地创建置换矩阵。也就是说,如果q是长度的置换向量n,表达式

  P = eye (n) (:, q);

将创建一个置换矩阵-一个特殊的矩阵对象。

eye (n) (q, :)

也将起作用(并创建一个行排列矩阵),以及

eye (n) (q1, q2).

例如

  eye (4) ([1,3,2,4],:)
⇒
Permutation Matrix

   1   0   0   0
   0   0   1   0
   0   1   0   0
   0   0   0   1

  eye (4) (:,[1,3,2,4])
⇒
Permutation Matrix

   1   0   0   0
   0   0   1   0
   0   1   0   0
   0   0   0   1

在数学上,单位矩阵既是对角矩阵又是置换矩阵,eye (n)返回一个对角矩阵,因为矩阵只能有一个类。您可以将此对角矩阵转换为置换矩阵,方法是通过单位置换对其进行索引,如下所示。这是单位矩阵的一个特殊性质;索引其他对角化矩阵通常返回完整矩阵。

  eye (3)
⇒
Diagonal Matrix

   1   0   0
   0   1   0
   0   0   1

  eye(3)(1:3,:)
⇒
Permutation Matrix

   1   0   0
   0   1   0
   0   0   1

其他一些内置函数也可以返回置换矩阵。示例包括invlu.


版权所有 © 2024-2025 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2