2013-09-23 119 views
3

我收到錯誤信息,如在我的文章標題中。我已經看到這個問題出現在其他問題中,但我有興趣瞭解這意味着什麼,因爲其他答案是在一個不適用於我的特定環境中。'numpy.float64'對象不可調用

其次,我想了解這是如何適用於我的代碼,如下所示。請注意,如果Zindx = 0,這一切都可以正常工作,但對於其他任何情況都不適用。

Zindx = list(E).index(0) 
    for m in range(0,N): 
      if m != Zindx: 
       for n in range(0,N): 
        if n != Zindx: 
         if n != m: 
          x[m,m] = x[m,m] (
          - (E[n]-E[m] + E[n])*x[m,n]*x[n,Zindx] 
          /x[m,Zindx]/E[m] 
          ) 
+2

你的問題是你在哪裏做x [m,m] = x [m,m](...)'。你可能想要在'x [m,m]'和'(':'之間')之間插入一個'*'或其他操作符,Python將這個參數解釋爲調用對象'x [m,m]'在括號裏面 – Jaime

+0

現在我覺得自己很愚蠢!Thamks。 – Mark

回答

3

此:

x[m,m] (
    - (E[n]-E[m] + E[n])*x[m,n]*x[n,Zindx] 
    /x[m,Zindx]/E[m] 
    ) 

試圖調用x[m,m]與括號作爲參數內表達的功能。我猜x[m,m]返回float。 您的意思是將x[m,m]乘以括號內的術語?如果是這樣,請添加*

+0

對我而言,這很愚蠢。我讀過圓括號可以用於多行運行的方程式,但顯然這隻能用於與同樣的語法,我正忙着尋找我從未注意到的所有其他可能性...... – Mark