我在python中有一段代码,用于在酉球体中生成x,y,z位置。问题是,在输出文件中,它们没有像xyz那样排列在单独的列中
from numpy import random, cos, sin, sqrt, pi
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
def rand_sphere(n):
z = 2 * random.rand(n) - 1 # uniform in -1, 1
t = 2 * pi * random.rand(n) # uniform in 0, 2*pi
x = sqrt(1 - z**2) * cos(t)
y = sqrt(1 - z**2) * sin(t)
return x, y, z
x, y, z = rand_sphere(200)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z)
plt.savefig('sphere.png')
#plt.show()
Outfile=open('output.txt','w')
Outfile.write('This line will be text\n')
Outfile.write('\n')
Outfile.write(repr(rand_sphere(200)))
Outfile.close()
另一个问题是,在x y z列之前,我需要为每行重复m=10
表示输出文件中的每一行必须如下所示(它们之间没有逗号):
This line will be text
m x y z
20 ... ... ...
.
.
.
(200 lines)
所以,我想有三个独立的位置列加上一个m=10列。你知道吗
给你
这将为您提供一个很好的对齐输出。你知道吗
我只是使用了你的脚本,在编写文件之前对格式输出进行了一些处理。在这里https://pyformat.info/查看有关格式化字符串方法的详细信息,以防您希望调整浮点精度和空格以满足您的需要。你知道吗
仅供参考,以下是我的
output.txt
文件的第一行:相关问题 更多 >
编程相关推荐