2015-08-21 40 views
-2

我一直在研究一些集成,一些操作和更多集成的代碼。 這是code(謝謝@JRichardSnape!)。 基本上這個代碼解決了矩陣方程,這就是mesolve所做的。它需要一個哈密爾頓算子(一個關鍵的物理矩陣),一個初始密度矩陣rho0以及一個評估rho(t)(我們正在解決的問題)和崩潰算子L1, L2, L3, L4, L5, L6, L7的時間表。然後我提取結果並乘以另外兩個數組並繪製它。用於科學Python代碼的IndexError

我使用qutip量子力學模塊,因爲他們有我需要的求解器:mesolve。 qutip模塊要求將所有矩陣轉換爲量子對象,由Qobj(x)完成。

我在摺疊操作符定義後面添加了一行定義rho0 = L1的行。當發生這種情況,它給了我一個索引錯誤:

IndexError: index 0 is out of bounds for axis 0 with size 0 

我試圖找出什麼是錯的。它在f_t的定義期間出錯。問題是它試圖索引數組(n.data是一個complex128數字的單個元素數組)。到底是怎麼回事?

+0

爲什麼downvote?我添加了詳細信息..你需要更多嗎? – TanMath

+2

我創建了一個'qutip'標籤。對於大多數'numpy'和'scipy'用戶來說,這個問題已經變得過於技術化了。 – hpaulj

回答

3

此重現你的錯誤:

In [34]: data = np.zeros((0,10))  
In [35]: data 
Out[35]: array([], shape=(0, 10), dtype=float64) 

In [36]: data[0] 
--------------------------------------------------------------------------- 
IndexError        Traceback (most recent call last) 
<ipython-input-36-88cae4a5bf31> in <module>() 
----> 1 data[0] 

IndexError: index 0 is out of bounds for axis 0 with size 0 

沒有研究到鏈接的代碼,很顯然,問題的數組長度爲0 1維。 x.shape[0]爲0

你可能會得到這樣的一個數組與空列表索引另一個

In [44]: data=np.ones((3,4)) 

In [45]: data[[],...] 
Out[45]: array([], shape=(0, 4), dtype=float64) 

有了你給它很難更具體的信息有限。檢查所有可疑陣列的形狀。


所以Qobjhttp://qutip.org/docs/2.2.0/apidoc/functions.html#qutip.mesolve.mesolve

rho0http://qutip.org/docs/2.2.0/apidoc/classes.html

mesolve記載預計rho0 : qutip.qobj

ground底層陣列是(7,1)形狀,L1(問題rho0?)是(7,7)和所有0除[0,0]。

看起來這是一個分拆的Integration not successful in Python QuTiP

+2

然後你需要澄清你的問題。我解釋了導致錯誤的可能情況。我無法從鏈接中得知,簡短的描述,哪條線產生了錯誤,或者可能涉及哪個變量。 – hpaulj

+0

單個元素數組會給出不同的錯誤:np.array(1.23)[0]''0-d數組不能被索引',或者沒有錯誤'np.array([12.323])[0]'。 – hpaulj

+0

我澄清了,是更好嗎? – TanMath