我需要使用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。
答案 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
最后,通过对这两个矩阵求和,您将获得最终矩阵。