2024-09-27 09:25:00 发布
网友
我有一个函数,取两个m维数组,用它们做一些计算(这里非常简化),然后返回一维数组。此外,我有m维测量数据,并希望优化这两个阵列,以适应测量。这在一个数组中工作得很好。我只是不能让它在两个(或更多)数组中工作。它总是抛出:
TypeError: Improper input: N=40 must not exceed M=20
这是我的密码。如果有人能帮忙,非常感谢!在
如果你想拟合一条直线,你应该给斜率和截距-两个参数,而不是40。我想这就是你想做的:
import matplotlib.pyplot as plt import numpy as np from scipy import optimize data=[np.arange(0,20.0,1),np.array([-52.368, 32.221, 40.102, 48.088, 73.106, 50.807, 52.235, 76.933, 65.737, 34.772, 94.376, 123.366, 92.71, 72.25, 165.051, 91.501, 118.92, 100.936, 56.747, 159.034])] def line(m,b): return np.arange(0, 20, 1)*m + b guess = np.ones(2) errfunc= lambda p,y: (y-line(p[0],p[1])) parameter, sucess = optimize.leastsq(errfunc, guess, args=(data[1])) print(parameter) plt.plot(data[0],data[1],'o') plt.plot(data[0],line(parameter[0],parameter[1])) plt.show()
如果你想拟合一条直线,你应该给斜率和截距-两个参数,而不是40。我想这就是你想做的:
相关问题 更多 >
编程相关推荐