1

mxn 行列 (n-2)xn に対して、matlab で 2 次演算子行列をより正確に構築しようとしています。

diag を調べましたが、正方行列しか作成しません。アイデアを考えているだけです。

繰り返しますが、

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

主対角で -2 を返しますが、mxn 行列には主対角がありません。

4

1 に答える 1

2

あなたが探している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
于 2014-02-07T07:27:58.370 に答える