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

时间:2016-03-14 19:51:42

标签: matlab matrix linear-algebra

我需要使用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。

1 个答案:

答案 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

最后,通过对这两个矩阵求和,您将获得最终矩阵。