我试图编写一个函数来绘制一些数据,但是用Fpi(mud)
运行下面的代码时,出现TypeError:'int' object is not callable
。
我已经确保名称Fpi没有在任何地方定义为整数,所以我不理解问题所在。
mud=np.array([0.0014700734999999996,
0.0011840320799999997,
0.0014232304799999995,
0.0008501509799999997,
0.0007235751599999999,
0.0005770661399999999,
0.0005581295999999999,
0.00028703807999999994,
0.00014850233999999998])
afij=np.array([1.0944,-1.0])
def Fpi(x,B=2.58,Fc=88,mu=0.77):
return Fc*(1+ ((2*B*x)/(4*pi*Fc))**2(afij[0]+afij[1]*np.log((2*B*x)**2/mu2)))
如果有人能帮助我,我将不胜感激!
答案 0 :(得分:1)
return Fc*(1+ ((2*B*x)/(4*pi*Fc))**2(afij[0]+afij[1]*np.log((2*B*x)**2/mu**2)))
错误在于以上陈述。如果找不到,请再次查看。
((2*B*x)/(4*pi*Fc))**2(afij[0] ...)
现在可以看到吗?
(...)**2(afij[0] ...)
现在怎么样?
如果没有,那么扰流板就来了。
您错过了在
2
之后添加的运算符。 Python假设(...)**2
是某种方法,您正在调用它,但是,它只是一个int,不能用作方法。因此是错误。
编辑:摆脱了反斜杠。
答案 1 :(得分:0)
考虑拆分操作:
mud=np.array([0.0014700734999999996,
0.0011840320799999997,
0.0014232304799999995,
0.0008501509799999997,
0.0007235751599999999,
0.0005770661399999999,
0.0005581295999999999,
0.00028703807999999994,
0.00014850233999999998])
afij=np.array([1.0944,-1.0])
def Fpi(x,B=2.58,Fc=88,mu=0.77):
temp2 = ((2*B*x)/(4*pi*Fc))**2
temp1 = temp2 (afij[0]+afij[1]*np.log((2*B*x)**2/mu2))
return Fc*(1+ temp1)
问题是,在temp2
之后,您没有任何操作要执行(在您的原始代码中,**2
之后)。