def computeGyradiusStd(gyradiusSq, polWeights):
# Calc Weighted gyradius and standard deviation
# Initiate variables
weightedGyradiusSq=np.zeros(c.nBeads)
weightedGyradiusSqStd=np.zeros(c.nBeads)
# Loop over all possible polymer lengths
for z in range(c.nBeads):
# Get weight for bead number z in all polymers
w = np.squeeze(np.asarray(polWeights)[:,z])
# Count nonzero
dataLength = len( np.flatnonzero(w!=0) )
# Calculate mean and standard deveation of mean
weightedGyradiusSq[z]=np.average(gyradiusSq[:,z], weights=w)
weightedGyradiusSqStd[z]=( (np.average((gyradiusSq[:,z] - weightedGyradiusSq[z])**2, weights=w)) / (dataLength))**(1/2)
return weightedGyradiusSq, weightedGyradiusSqStd
评论列表
文章目录