在Octave或Matlab中,有一种简洁,紧凑的方法来创建大型Toeplitz矩阵,例如:
T = toeplitz([1,-0.25,zeros(1,20)])
这节省了大量时间,否则将花费数十或数百个零填充矩阵,使用额外的代码行。
然而,我似乎无法对scipy或numpy做同样的事情,尽管这两个库同时具有toeplitz()和zeros()函数。 是否有类似的方法可以做到这一点,或者我必须将我自己的例行程序组合在一起(不是一个大问题,但仍然是一个麻烦)?
谢谢,
F。
答案 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)])
这是值得期待的事情。