我需要使用 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
最后,通过对这两个矩阵求和,你会得到最终的矩阵。