-3
我只是想抓住scipy.optimize.curve_fit函数抛出的ValuError,但我意识到它不被认为是一个有效的异常。scipy.optimize曲线拟合
这里是我的代码:
from scipy.optimize import curve_fit
ksi=((185/((xdata_1/420)**2 + (420/xdata_1)**2 + 90)) + (27/((xdata_1/800)**4 + (800/xdata_1)**4 + 5.50)) + (0.005/((xdata_1/2200)**2 + (2200/xdata_1)**2 - 1.95)) + (0.012/((xdata_1/180000)**2 + (180000/xdata_1)**2 -1.8))+ (0.01/((xdata_1/97000)**2 + (97000/xdata_1)**2 -1.95)) + (0.03/((xdata_1/250000)**2 + (250000/xdata_1)**2)) )
def power(xdata_1,cc,dd,gg):
global ksi
return cc*(xdata_1**(dd))*(10**(-1.572*gg*(ksi)))
这是一个完整的警告,我得到:
ValueError异常:操作数无法与形状(455)一起广播(1772)
我该如何解决这个问题?
如果问题出现在scipy curve_fit中,你能发表一个包含代码部分的例子吗? – Chris
不清楚你在问什么。 “我只是想抓住一个ValuError”,但是在你的代码中没有任何事情,“这是我得到的完整警告:ValueError ...”这是一个警告还是错误?哪一行代码触发它? “我如何解决这个问题?”究竟是什么问题? – Goyo
考虑到ksi只取决于xdata_1,我不认为有必要使用全局的方式来浑水。至于你的警告,cc,dd,gg或xdata_1或ksi之一的长度与其他长度不同,所以你的电源功能会在广播中遇到麻烦。 –