我将尝试尽可能简单地解释这一点...以下代码摘自我定义的函数。我正在更新每个步骤的值R
,据我所知可以正常工作。 R
是一个矩阵,我需要将每个更新的矩阵添加到列表R_list_eq
。当我打印列表时,我确实得到了一个矩阵列表,但是它们都是一样的,所以我猜代码在某个地方被覆盖了。
R_list_eq = []
R, V, F, box_width = md.initialize_particles(n_atoms, temperature, rho, eps)
for n in range(20000):
R += dt * V + 0.5 * dt**2 * F
if n > 10000:
R_list_eq.append(R)
如果有陈述if n > 10000 and R not in R_list_eq:
,我已经编辑过您,这将避免覆盖。
R_list_eq = []
R, V, F, box_width = md.initialize_particles(n_atoms, temperature, rho, eps)
for n in range(20000):
R += dt * V + 0.5 * dt**2 * F
if n > 10000 and R not in R_list_eq:
R_list_eq.append(R)