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

在数学上,单位矩阵既是对角矩阵又是置换矩阵。在 Octave 中,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-2026 Octave中文网

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