【发布时间】:2020-02-16 03:38:32
【问题描述】:
我想问为什么我在 Python 中的一些矩阵缺少大小值?重新定义的矩阵/数组显示了其中的数字,但是缺少大小,因此它给我带来了其他错误。为什么变量资源管理器缺少此信息或 Python 无法识别大小?
代码:
import numpy as np
import pylab
from scipy.integrate import odeint
import matplotlib.pyplot as plt
#import random
import mpl_toolkits.mplot3d.axes3d as p3
import random as rand
ParticleCount = 100 ## of particles to generate energies for energy generation
binsize = 15 #Determines bin size for historgram of electron energies
S1 = 0.0200001 #Specify minimum radius particles may be generated
S2 = 0.0200002 #Specify maximum radius particles may be generated
phi1 = -90
phi2 = 90
phi1rad = phi1*(np.pi/180)
phi2rad = phi2*(np.pi/180)
#Generate random positions for each particle between s1 and s2
#ICPositions = np.array([])
ICPositions = np.empty([3,ParticleCount],dtype = float)
SphPositions = np.empty([3,ParticleCount],dtype = float)
for i in range(0,ParticleCount):
#In Spherical: Generates random position with boundaries of: S1<r<S2
rrand = (S2 - S1)*rand.uniform(0,1) + S1 #Random # generation for component x between s1 and s2
thetarand = (2*np.pi)*rand.uniform(0,1) #Random # generation for component y between s1 and s2
phirand = np.arcsin((np.sin(phi2rad) - np.sin(phi1rad))*rand.uniform(0,1) + np.sin(phi1rad))
xrand = RStart*np.sin(phirand)*np.cos(thetarand)
yrand = RStart*np.sin(phirand)*np.sin(thetarand)
zrand = RStart*np.cos(phirand)
sphArray = np.array([RStart,thetarand,phirand])
randArray = np.array([xrand,yrand,zrand])
randArray = np.array(randArray,dtype = float)
if ICPositions.size == 0:
ICPositions = np.array([randArray])
else:
ICPositions = np.append(ICPositions,[randArray],axis = 0)
print(ICPositions)
【问题讨论】:
-
在
for i in range(0,ParticleCount):中,您似乎在每个循环中都覆盖了 sphArray 和 randArray。首先创建空数组并为每个循环追加。
标签: python