python - ODR错误: fcn does not output [n]-shaped array

标签 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

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

最佳答案

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

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)

关于python - ODR错误: fcn does not output [n]-shaped array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898093/

相关文章:

python - 为什么 python 中的这个 linux 命令不会打开 xterm 终端?

JavaScript 数组 - 选择具有偶数值的元素

python - python 中的多个 return 语句问题

python - 带有组合生成器的 Numpy : How does one speed up Combinations?

python - 如何从 Python 3 中的 awswrangler 捕获 exceptions.NoFilesFound 错误

python - cv2.solvePnP 方法标志的 Python 常量是什么?

python - Django 将错误列表输出为字符串而不是 html

java - Oracle VARRAY 如何用 Java 术语表示数据?

javascript - 使用数组辅助函数具有唯一值的数组

python - 在 AWS Lambda 函数中导入 numpy 时出现问题