我有一个问题需要我的代码来对实验进行数据评估: 在第一个for循环中,我正在打开要分析的文件。在此for循环中,因此在一个文件中,我想创建第二个for循环以评估一些特定的参数进行评估。当我仅对一个文件执行此操作时,参数是正确的,但是当我遍历所有文件时,看起来在第二个for循环中这些参数已汇总。因此对于一个文件来说,正常值应该在ar = 0.0001的范围内。当我遍历文件时,第一个文件获得0.0001,第二个文件获得0.0002,第三个文件获得0.0003,等等。
更新:
好的,所以这是代码的整个部分。对于我想要的每个文件,在拟合数据后获得文件内第一列(x [j])中两个数据点之差的总和乘以第二列n(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
答案 0 :(得分:0)
如果您正在处理文件(例如,打开文件),我建议使用os模块,也许像这样的结构可以帮助您避免嵌套的for循环:
for root,dirs,files in os.walk(os.getcwd()):
for i in files:
with open(os.path.join(root,i)) as f:
#do your summation