ODR错误:fcn不输出[n]形数组

时间:2017-05-10 16:28:00

标签: python arrays numpy scipy


我正在尝试使用曲线拟合 scipy.odrpack ,但我遇到了命令 odrpack.ODR 的问题。
这是我写的代码:

def f(x,i):
    return i[0]*numpy.exp(-i[1]*x)

a=pandas.read_csv("~/Untitled.csv")
exp=odrpack.Model(f)
data=odrpack.RealData(a['t'],a['c1'])
myodr=odrpack.ODR(data, exp, beta0=[1.,2.])
myoutput=myodr.run()
myoutput.pprint()

但是我得到以下错误(10是由于数组的长度):

OdrError: fcn does not output [10]-shaped array

有谁知道我为什么会收到这个错误? 谢谢!

1 个答案:

答案 0 :(得分:1)

您不小心交换了拟合函数的参数:

def f(x,i):
    return i[0]*numpy.exp(-i[1]*x)

什么时候应该

def f(i,x):  # note the order of arguments
    return i[0]*numpy.exp(-i[1]*x)