首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用numpy/scipy的Toeplitz矩阵

利用numpy/scipy的Toeplitz矩阵
EN

Stack Overflow用户
提问于 2015-03-01 03:30:55
回答 2查看 5.2K关注 0票数 2

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

代码语言:javascript
复制
T = toeplitz([1,-0.25,zeros(1,20)])

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

尽管这两个库都有toeplitz()和zeros()函数,但我似乎无法对两者都做同样的操作。是否有类似的方法来做到这一点?还是我必须自己安排一个例行公事来做(这不是什么大问题,但仍然是个麻烦)?

谢谢,

F.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-01 03:48:05

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

代码语言:javascript
复制
from numpy import concatenate, zeros
from scipy.linalg import toeplitz

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

然而,从python3.5开始,我们将拥有:

代码语言:javascript
复制
toeplitz([1., -.25, *zeros(20)])

所以这是值得期待的事情。

票数 3
EN

Stack Overflow用户

发布于 2021-11-16 12:19:35

另一种选择是使用_

代码语言:javascript
复制
import numpy as np
from scipy.linalg import toeplitz

toeplitz(np.r_[1, -0.25, np.zeros(20)])

您还可以使用列表:

代码语言:javascript
复制
toeplitz([1, -0.25] + [0]*20)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28789781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档