【发布时间】:2019-05-06 20:39:09
【问题描述】:
我有一个关于我的实验数据评估代码的问题: 在第一个 for 循环中,我打开一个又一个要分析的文件。在这个for循环中,所以在一个文件中,我想创建第二个for循环来评估一些特定的参数进行评估。当我只为一个文件执行此操作时,参数是正确的,但是当我遍历所有文件时,看起来在第二个 for 循环中这些参数被总结了。所以正常值应该在 ar= 0.0001 的范围内,因为一个文件可以正常工作。当我遍历文件时,第一个得到 0.0001,第二个得到 0.0002,第三个得到 0.0003,依此类推。
更新:
好的,这是代码的全部部分。对于我想要的每个文件,在拟合数据以获得文件内第一列 (x[j]) 中的两个数据点之间的差异的总和乘以第二列中的对应值 (y[j]) (每个文件有两列,长度为 720 个数据点),然后应将结果存储在每个文件的 AR 中。
def sum_list(l):
sum = 0
for k in l:
sum += k
return sum
INV= []
DIFFS= []
AR= []
for i in range(0,len(fnames)):
data= np.loadtxt(fnames[i])
x= data[:,0]
y=data[:,1]
gmod=lm.Model(linmod)
result= gmod.fit(y, x=x, p=0.003, bg=0.001)
plt.plot(x, y)
plt.plot(x, result.best_fit, 'r-')
plt.show()
print result.best_values['bg']
print result.best_values['p']
p= result.best_values['p']
bg1= result.best_values['bg']
for j in range(0, 719):
diffs = ((x[j+1]- x[j])*y[j])
DIFFS.append(diffs)
ar= sum_list(DIFFS)
AR.append(ar)
inr= (x[0]-bg1)*(y[0]**3)/3 + ar
INV[i]= inr
【问题讨论】:
-
什么是
DIFFS1?x是什么?y是什么?diffs是什么?请提供minimal reproducible example -
这里还是没有提供相关部分的代码。如果问题出在
diffs的求和结果上,我们需要查看与diffs相关的所有代码。 -
我现在在新评论中提供了它;)
标签: python for-loop sum overwrite