0
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
from numpy import *

AA = np.ndindex(10,10,10)
G = .0000000000066
m = 20000
P0= (20, 0, 0)

for i in AA:   
   print sum(-G*m*(P0[0]-i[0])/(sqrt((P0[0]-i[0])**2+(P0[1]-i[1])**2+(P0[2]-i[2])**2)**3))

我正在尝试创建一个程序,将函数应用于数组中的所有元素,然后将所有新元素加在一起(实际上我想要做的是找到由立方体施加在观察者身上的重力加速度一定距离之外)。当前代码返回的是一个元组数组(所有这些都已被操作),但我无法将结果汇总在一起。任何帮助,将不胜感激。

4

1 回答 1

1

在 内部使用生成器表达式sum()

print sum(-G*m*(P0[0]-i[0])/(sqrt((P0[0]-i[0])**2+(P0[1]-i[1])**2+(P0[2]-i[2])**2)**3)
              for i in AA)

(为了便于阅读,我将for i in AA块移到下一行,但这可以很容易地写成一行)

于 2013-09-11T23:00:25.443 回答