N和M在该功能的帮助中定义。N是数据点的数量,M是参数的数量。因此,您的错误基本上意味着您至少需要与参数一样多的数据点,这很合理。
该代码对我有用:
import numpy as npimport matplotlib.pyplot as pltfrom scipy.optimize import curve_fitdef fitFunc(x, a, b, c, d): return a + b*x[0] + c*x[1] + d*x[0]*x[1]x_3d = np.array([[1,2,3,4,6],[4,5,6,7,8]])p0 = [5.11, 3.9, 5.3, 2]fitParams, fitCovariances = curve_fit(fitFunc, x_3d, x_3d[1,:], p0)print ' fit coefficients:n', fitParams
我包含了更多数据。我也已更改
fitFunc为以仅作为单个x的函数进行扫描的形式编写-
装配工将处理对所有数据点的调用。您发布的代码也引用
x_3d[2,:],导致了错误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)