首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对输入列表重复一个函数?

如何对输入列表重复一个函数?
EN

Stack Overflow用户
提问于 2021-03-26 06:02:04
回答 1查看 54关注 0票数 2

我正在尝试使用QuTip库的以下函数:

代码语言:javascript
运行
复制
coherent_dm(N=10, alpha = c, offset=0, method='operator')

它的输出是一个矩阵,它的输入是一个复数"c",但是我想要获得一个多个"c“数字列表的矩阵,但如果我将"c”定义为:

代码语言:javascript
运行
复制
t = np.linspace(0,2*np.pi,100)
c = 2*np.exp(-t*1j) + 0.1*10*(1 - np.exp(-t*1j))

然后运行它给我的“尺寸不匹配”错误的代码。在本例中,我尝试运行一个包含100个复数的列表作为输入"c“,期望得到100个矩阵的输出。任何关于如何解决这个问题的想法都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-26 06:13:42

coherent_dm返回一个qutip.Qobj实例。这是一个实现__array__接口的专用对象,但实际上不是一个numpy数组。在内部,它似乎包含一个稀疏矩阵。这意味着您不能轻易地让coherent_dm一次返回多个矩阵,甚至不能将多个调用的结果连接到一个数组中。

因此,您最好的选择可能是使用列表理解:

代码语言:javascript
运行
复制
result = [coherent_dm(N=10, alpha=i, offset=0, method='operator') for i in c]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66808189

复制
相关文章

相似问题

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