我正在尝试使用以下公式进行一些简单的计算,以得出计算得出的泄漏量:calculatedLeakage=((averageCurrent/(averageVoltage/1000.0))/area[z])
但是我注意到公式中仅使用了列表区域的最后一个元素,我不知道为什么(area
是从另一个文件导入的列表)。
for j in range(0,len(mm),1):
voltageValue=data3[mm[j],i]
currentValue=data3[mm[j],i+2]
sumVoltage += voltageValue
sumCurrent += currentValue
if (len(mm)!=0):
averageVoltage = sumVoltage/len(mm)
averageCurrent = sumCurrent/len(mm)
for z in range(0,len(area),1):
calculatedLeakage=((averageCurrent/(averageVoltage/1000.0))/area[z])
calculatedLeakage=(round(calculatedLeakage,1))
if (headerFlag==True):
all.append([header[1:5],header[10:11],header[15:16],calculatedLeakage])
all2=pd.DataFrame(all)
else:
all.append([calculatedLeakage])
all2=pd.DataFrame(all)
return(all2)
就所有正确的地方而言,我得到的结果都是完美的,但是我注意到我的公式仅使用area的最后一个元素进行除法。
答案 0 :(得分:0)
您的行calculatedLeakage=((averageCurrent/(averageVoltage/1000.0))/area[z])
在for循环内。 area
的每个元素都用于除法,但每次都只覆盖结果。
我认为您可能想做的事情是这样的:
if (len(mm)!=0):
averageVoltage = sumVoltage/len(mm)
averageCurrent = sumCurrent/len(mm)
calculatedLeakage=((averageCurrent/(averageVoltage/1000.0))/area[0])
for z in range(1,len(area),1):
calculatedLeakage/=area[z]
calculatedLeakage=(round(calculatedLeakage,1))
答案 1 :(得分:0)
您还需要将all.append语句也添加到第一个if语句中。
if (len(mm)!=0):
averageVoltage = sumVoltage/len(mm)
averageCurrent = sumCurrent/len(mm)
for z in range(0,len(area),1):
# print ("z",z)
calculatedLeakage=((averageCurrent/(averageVoltage/1000.0))/area[z])
# print ("area",area[z])
calculatedLeakage=(round(calculatedLeakage,1))
all.append(calculatedLeakage)