2016-10-01 62 views
2

我將LU分解的matlab代碼轉換爲python。'numpy.ndarray'對象在Python中不可調用錯誤

但是當我做我這個錯誤

'numpy.ndarray' object is not callable

遇到的,當我試圖測試我的代碼出現此錯誤。這是我的代碼,任何人都可以幫助解決這個問題?我在等你的幫助。

import numpy as np 

def LU(a): 
    [m,m]=a.shape 

    for k in range(0,m-1,1): 
     a[k+1:m-1,k]=a[k+1:m-1,k]/a(k,k) 
     a[k+1:m-1,k+1:m-1]=a[k+1:m-1,k+1:m-1]-a[k+1:m-1,k]*a[k,k+1:m-1] 
    L=np.eye(m,m)+np.tril(a,-1) 
    U=np.triu(a) 
    return [L,U] 

b=np.array([[1,0,0],[0,1,0],[0,0,1]]) 

LU(b) 
+0

你應該總是在你的問題中包含完整的回溯,而不僅僅是最後一行。這使得查看代碼中錯誤發生的位置變得更加容易(正如其他人所說的,問題在於'a(k,k)'中使用了圓括號而不是方括號)。 –

回答

5

發生了誤差,因爲使用了一種錯誤的括號對你的函數的4號線。

a[k+1:m-1,k]=a[k+1:m-1,k]/a(k,k) 

應更正

a[k+1:m-1,k]=a[k+1:m-1,k]/a[k,k] 

()括號應由[]代替。由於[]大括號提示索引操作,而()大括號提示函數調用,所以發生該錯誤。

相關問題