2016-10-01 110 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] 

()括号应由[]代替。由于[]大括号提示索引操作,而()大括号提示函数调用,所以发生该错误。

相关问题