正如标题所示,我正在尝试用分段函数进行曲线拟合。这是一个例子:
import numpy as np
import scipy.optimize as sio
x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 11, 18, 27])
def f(x, a):
if x <= 2:
return x + a
elif x >= 3:
return x**2 + a
sio.curve_fit(f, x, y)
现在,这会返回以下错误:
ValueError: The truth value of an array with more than one element is ambiguous
通过添加打印函数,我发现这是因为传递给函数“f”的“x”值是numpy数组[0, 1, 2, 3, 4, 5]
我想知道这个问题是否有解决方法。
Thanks!