【问题标题】:ODR error: fcn does not output [n]-shaped arrayODR 错误:fcn 不输出 [n] 形数组
【发布时间】:2017-05-10 16:27:59
【问题描述】:


我正在尝试使用曲线拟合 usign 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

有人知道我为什么会收到此错误吗?
谢谢!

【问题讨论】:

  • 不应该是def f(i, x)吗?
  • 你是对的。我以为顺序无关紧要。现在可以了

标签: python arrays numpy scipy


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 2016-02-06
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 2018-11-28
    • 2016-06-09
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多