在Octave或Matlab中,有一种简洁的方法可以创建大型Toeplitz矩阵,例如:
T = toeplitz([1,-0.25,zeros(1,20)])这节省了大量的时间,否则会用几十或数百个零填充矩阵,使用额外的代码行。
尽管这两个库都有toeplitz()和zeros()函数,但我似乎无法对两者都做同样的操作。是否有类似的方法来做到这一点?还是我必须自己安排一个例行公事来做(这不是什么大问题,但仍然是个麻烦)?
谢谢,
F.
发布于 2015-03-01 03:48:05
目前,我认为你能做的最好的就是:
from numpy import concatenate, zeros
from scipy.linalg import toeplitz
toeplitz(concatenate([[1., -.25], zeros(20)]))然而,从python3.5开始,我们将拥有:
toeplitz([1., -.25, *zeros(20)])所以这是值得期待的事情。
发布于 2021-11-16 12:19:35
另一种选择是使用_
import numpy as np
from scipy.linalg import toeplitz
toeplitz(np.r_[1, -0.25, np.zeros(20)])您还可以使用列表:
toeplitz([1, -0.25] + [0]*20)https://stackoverflow.com/questions/28789781
复制相似问题