我正在尝试在 matlab 中为 mxn 矩阵 (n-2)xn 更精确地构造二阶运算符矩阵。
我查了 diag 但它只生成一个方阵。只是想知道想法。
再次重申,
D = diag(-2*ones(1,n-1),0)
将在主对角线上返回 -2,但 mxn 矩阵没有主对角线。
我正在尝试在 matlab 中为 mxn 矩阵 (n-2)xn 更精确地构造二阶运算符矩阵。
我查了 diag 但它只生成一个方阵。只是想知道想法。
再次重申,
D = diag(-2*ones(1,n-1),0)
将在主对角线上返回 -2,但 mxn 矩阵没有主对角线。
您正在寻找spdiags
:
>> n = 6; m = n-2;
>> D = full(spdiags(-2*ones(m,1),0,m,n))
D =
-2 0 0 0 0 0
0 -2 0 0 0 0
0 0 -2 0 0 0
0 0 0 -2 0 0
或者只是使用eye
:
D = -2*eye(m,n)
也许你想组合几个对角线:
>> B = [ones(m,1) -2*ones(m,1) ones(m,1)];
>> D = full(spdiags(B,0:2,n-2,n))
D =
1 -2 1 0 0 0
0 1 -2 1 0 0
0 0 1 -2 1 0
0 0 0 1 -2 1