将对角线放在mxn矩阵中

问题描述:

我试图在matlab中更精确地构造mxn矩阵(n-2)xn的二阶运算符矩阵。将对角线放在mxn矩阵中

我查了一下诊断,但它只是一个方形矩阵。只是想知道的想法。

再次重申,

D = diag(-2*ones(1,n-1),0) 

将返回-2主对角线而是一个m×n矩阵不具有主对角线。

+0

你能提供一个例子输出请 – Dan

+0

你可以只填充方形矩阵:'padarray(D,[0 2],0,'po ST“)' – Superbest

您正在寻找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