我有一个非常可怕的算法来比较原子之间的距离,但它的工作原理并不是我想要的那样。代码如下:
for k in ResListA:
for n in ResListB:
for m in ResListA[counter3].atoms:
for z in ResListB[counter4].atoms:
coordDist = distance.distance(ResListA[counter3].atoms[counter4],ResListB[counter2].atoms[counter1])
counter1 = counter1 + 1
counter1 = 0
counter4 = counter4 + 1
counter4 = 0
counter2 = counter2 + 1
counter2 = 0
counter3 = counter3 + 1
基本上,我想要的是
ResListA[0].atoms[0,..,n]
ResListB[0,..,k].atoms[0,..,m]
待计算。然而,它计算出
ResListA[0].atoms[0]
至
ResListB[0,..,k].atoms[0,..,m]
例如:
ResListA[N,P,C,N,C] ResListB[C,C][P,P]...
应该是的
dist(N,C) dist(N,C) dist(P,C) dist(P,C)
不是
dist(N,C) dist(N,C) dist(N,P) dist (N,P)
先谢谢你。你知道吗
虽然gnibbler可能是正确的,因为这是您应该做的,但这是您当前代码简化为:
你的问题是你需要:
而不是
我认为你的代码可以写得更像这样。你知道吗
不知道
distance.distance
做什么。你不应该做一些涉及coordDist
的事情吗?你知道吗相关问题 更多 >
编程相关推荐