【发布时间】:2013-09-07 00:32:14
【问题描述】:
import numpy as np
from scipy.optimize import curve_fit
x1 = [0.25, 0.33, 0.40, 0.50, 0.60, 0.75, 1.00]
y1 = [1.02, 1.39, 1.67, 1.89, 2.08, 2.44, 2.50]
def mmfunc(x1, d, e):
return d*x1/(e + x1)
y2 = mmfunc(x1,6.0,1.0)
popt, pcov = curve_fit(mmfunc, x1, y1)
我收到此错误
TypeError: can't multiply sequence by non-int of type 'float'
(x1 是一个数组(浮点数),d, e 是浮点数)
(我尝试从文件中读取值,打印出值(它们是浮点数)... 我尝试了一个更简单的功能 - 似乎没有任何效果!)
【问题讨论】:
-
异常有什么不清楚的地方?
-
你能用问题的形式来表达吗?
-
问题是“x1 是一个数组(浮点数)”是不正确的。不要只是假设它是您想要的,而应该是您检查的第一件事。例如,
print(type(x1))会立即告诉您它实际上是builtins.list,而不是numpy.ndarray。因此,您不能对其使用特定于数组的操作。