MATLAB:使用 diag() 创建具有多个对角线的矩阵



我需要使用 MATLAB 的 diag 命令制作一个看起来像这样的矩阵。

    [0  0  7  0  2;
     0  0  0  3  0;
     0  0  0  0  1;
     0  0  0  0  0;
     0  0  0  0  0]

我想到了该怎么做

    [0  0  7  0  0;
     0  0  0  3  0;
     0  0  0  0  1;
     0  0  0  0  0;
     0  0  0  0  0]

但似乎无法在第一行/第五列插入 2。

不能使用唯一的diag()调用设置多个对角线。
知道 Matlab 会将所有其他条目设置为 0,您可以执行以下操作:

A=diag([7 3 1],2)+diag(2,4);

为了得到

 0     0     7     0     2
 0     0     0     3     0
 0     0     0     0     1
 0     0     0     0     0
 0     0     0     0     0

换句话说,您正在使用两个diag()命令创建两个单独的矩阵。
diag([7 3 1],2)会回来

 0     0     7     0     0
 0     0     0     3     0
 0     0     0     0     1
 0     0     0     0     0
 0     0     0     0     0

diag(2,4)会回来

 0     0     0     0     2
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0
 0     0     0     0     0

最后,通过对这两个矩阵求和,你会得到最终的矩阵。

相关内容

  • 没有找到相关文章