我正在将LU分解matlab代码转换为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 :(得分: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]
即。 ()
大括号应替换为[]
。发生错误是因为[]
括号表示索引操作,而()
括号表示函数调用。