回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>下面是根据传感器(列<code>x</code>)的值计算的距离(列<code>y</code>)。你知道吗</p>
<h3>你知道吗测试.txt-内容</h3>
<pre><code>x y
----------
-51.61 ,1.5
-51.61 ,1.5
-51.7 ,1.53
-51.91 ,1.55
-52.28 ,1.62
-52.35 ,1.63
-52.49 ,1.66
-52.78 ,1.71
-52.84 ,1.73
-52.90 ,1.74
-53.21 ,1.8
-53.43 ,1.85
-53.55 ,1.87
-53.71 ,1.91
-53.99 ,1.97
-54.13 ,2
-54.26 ,2.03
-54.37 ,2.06
-54.46 ,2.08
-54.59 ,2.11
-54.89 ,2.19
-54.94 ,2.2
-55.05 ,2.23
-55.11 ,2.24
-55.17 ,2.26
</code></pre>
<p>我想通过曲线拟合找到<code>a</code>和<code>b</code>中数据的常数<code>test.txt</code>,基于此函数:</p>
<pre><code>Function y = 10^((a-x)/10*b)
</code></pre>
<p>我使用以下代码:</p>
<pre><code>import math
from numpy import genfromtxt
from scipy.optimize import curve_fit
inData = genfromtxt('test.txt',delimiter=',')
rssi_data = inData[:,0]
dist_data= inData[:,1]
print rssi_data
print dist_data
def func(x, a,b):
exp_val = (x-a)/(10.0*b)
return math.pow(10,exp_val)
coeffs, matcov = curve_fit(func,rssi_data,dist_data)
print(coeffs)
print(matcov)
</code></pre>
<p>代码未成功执行。另外,我不确定是否将正确的参数传递给了<code>curve_fit()</code>。你知道吗</p>