簡體   English   中英

如何為輸入列表重復 function?

[英]How to repeat a function for a list of inputs?

我正在嘗試使用 QuTip 庫的以下 function:

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

它是 output 是一個矩陣,它的輸入是一個復數“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 個矩陣的 output。 任何有關如何解決此問題的想法將不勝感激。

coherent_dm返回一個qutip.Qobj實例。 這是一個滿足__array__接口的專用 object,但實際上不是 numpy 數組。 在內部,它似乎包含一個稀疏矩陣。 這意味着您不能輕易地使coherent_dm一次返回多個矩陣,甚至無法將多個調用的結果連接到一個數組中。

因此,您最好的選擇可能是使用列表推導:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM