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

How to repeat a function for a list of inputs?

我正在尝试使用 QuTip 库的以下功能:

coherent_dm(N=10, alpha = c, offset=0, method='operator')

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

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 个矩阵的输出。任何有关如何解决此问题的想法将不胜感激。

coherent_dm returns a qutip.Qobj实例。这是一个满足 __array__ 接口的专用对象,但实际上并不是一个 numpy 数组。在内部,它似乎包含一个稀疏矩阵。这意味着您无法轻松地一次创建多个 coherent_dm return 矩阵,甚至无法将多个调用的结果连接到一个数组中。

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

result = [coherent_dm(N=10, alpha=i, offset=0, method='operator') for i in c]