我是Python的新手,我正在尝试编写Python代码以计算状态密度这是我收到TypeError的代码:'numpy.ndarray'对象不是可调用错误。
中的文件“ DOS.py”,第35行
s = (eigenValues_of_M(k)**2)*(1/pi)*(eta/((E-eigenValues_of_M(k))+(eta**2)))
TypeError:“ numpy.ndarray”对象不可调用
s=0
eta =0.5
for E in range (-6, 6):
for i in range(1, L+1):
for n in range (1, 3):
s = (eigenValues_of_M(k)**2)*(1/pi)*(eta/((E-eigenValues_of_M(k))+(eta**2)))
DOS = (1/L)*s
print(DOS)
答案 0 :(得分:0)
看着IndexError,代码中的k
的值不是整数。
请按以下所示将k强制转换为整数,然后尝试:
for E in range (-6, 6):
for i in range(1, L+1):
for n in range (1, 3):
s = (eigenValues_of_M[int(k)]**2)*(1/np.pi)*(eta/((E-eigenValues_of_M[int(k)])+(eta**2)))
DOS = (1/L)*s
print(DOS)