我正在努力用python创建以下矩阵:| 1 -2 1 0 ... 0 |
| 0 1 -2 1 ... ... |
|... ... ... ... 0 |
| 0 ... 0 1 -2 1 |
下面的matlab代码似乎创建了这个矩阵(article),但我不能用python代码转换它。在
Matlab代码:
^{pr2}$
T是列数。在
python中的代码如下所示:from scipy.sparse import spdiags
D2 = spdiags( (ones((T-2,1))*array([1,-2,1])),arange(0,3),T-2,T)
后者会产生以下错误:ValueError: number of diagonals (327) does not match the number of
offsets (3)
但如果我像这样转置矩阵:D2 = spdiags( (ones((T-2,1))*array([1,-2,1])).T,arange(0,3),T-2,T)
我得到以下结果:matrix([[ 1., -2., 1., ..., 0., 0., 0.],
[ 0., 1., -2., ..., 0., 0., 0.],
[ 0., 0., 1., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 1., 0., 0.],
[ 0., 0., 0., ..., -2., 0., 0.],
[ 0., 0., 0., ..., 1., 0., 0.]])
有人能帮我吗?我哪里错了?在