使用numpy / scipy的Toeplitz矩阵

时间:2015-03-01 03:30:55

标签: python numpy scipy toeplitz

在Octave或Matlab中,有一种简洁,紧凑的方法来创建大型Toeplitz矩阵,例如:

T = toeplitz([1,-0.25,zeros(1,20)])

这节省了大量时间,否则将花费数十或数百个零填充矩阵,使用额外的代码行。

然而,我似乎无法对scipy或numpy做同样的事情,尽管这两个库同时具有toeplitz()和zeros()函数。 是否有类似的方法可以做到这一点,或者我必须将我自己的例行程序组合在一起(不是一个大问题,但仍然是一个麻烦)?

谢谢,

F。

1 个答案:

答案 0 :(得分:1)

目前我认为你能做的最好的是:

from numpy import concatenate, zeros
from scipy.linalg import toeplitz

toeplitz(concatenate([[1., -.25], zeros(20)]))

从python 3.5开始,我们将:

toeplitz([1., -.25, *zeros(20)])

这是值得期待的事情。