0

我在 python 中创建了一个简单的函数:

def func(a,x):
  return a+x*2

然后我称之为

x = [log(1),log(2),log(4),log(5),log(8)]
#Import y data from a file
free= curve_fit(func,np.array(x),np.array(y))[0][0]
yline = func(free,x)

结果yline是两倍长,x并且每个元素都有两次。

为什么呢?

注意: 我正在导入 numpy 但不是 scipy 或 curve_fit

4

1 回答 1

5

x是一个列表,func其中将“乘以 2”(即其元素的数量加倍)。

如果要将其乘以 2(即每个元素相乘),请将其转换为np.arrayfirst:

x = [log(1),log(2),log(4),log(5),log(8)]
#Import y data from a file
free= curve_fit(func,np.array(x),np.array(y))[0][0]
yline = func(free, np.array(x))
于 2012-09-06T13:17:35.827 回答