首先,我知道nan代表“不是一个数字”,但我不确定我是如何在我的代码中得到一个无效的数字。我要做的是使用一个python脚本来读取一个向量列表(x,y,z)的文件,然后将其转换为一个长数组值,但是如果我不使用这个文件,我会生成一个生成随机数的for循环,我不会得到任何“nan”
在这之后,我使用牛顿引力定律来计算恒星的位置,F=GMm/r^2来计算位置,然后数据通过一个socket服务器发送到我为观看模拟而开发的c可视化软件。不幸的是,我的python脚本进行计算,但是很难正常工作。在poslist = []
plist = []
mlist = []
lineList = []
coords = []
with open("Hyades Vectors.txt", "r") as text_file:
content = text_file.readlines()
#remove /n
for i in range(len(content)):
for char in "\n":
line = content[i].replace(char,"")
lineList.append(line)
lines = array(lineList)
#split " " within each line
for i in range(len(lines)):
coords.append(lines[i].split(" "))
coords = array(coords)
#convert coords string to integer
for i in range(len(coords)):
x = np.float(coords[i,0])
y = np.float(coords[i,1])
z = np.float(coords[i,2])
poslist.append((x,y,z))
pos = array(poslist)
通常在第二次通过这个循环之后发送nan
^{pr2}$
我做错什么了??????我不完全理解nan,但如果我的可视化软件是读取nan,我就不能拥有它们,因为那样的话,就没有什么东西能提供视觉效果了。我知道错误是sum(F,1),我把所有的东西都打印出来,直到我得到一个nan,这就是哪里,但是如何从求和中得到nan呢。以下是我正在阅读的文本文件的部分:51.48855 4.74229 -85.24499
121.87149 11.44572 -140.79644
59.81673 68.8417 18.76767
31.95567 37.23007 6.59515
29.81066 34.76371 6.18374
41.35333 49.52844 14.12314
32.10481 38.46982 7.96628
48.13239 60.4019 37.45474
26.37793 34.53385 15.9054
76.02468 103.98826 25.96607
51.52072 71.17618 32.09829
请帮忙