2
我正在定义一个函数,它将返回一个三维网格。在此期间,我使用已定义的函数返回一个二维数组。我想在迭代过程中加入这些2-d arrarys来形成3-d,但我已经看过像meshgrid(),dstack(),concatenate()这样的函数,但似乎无法使它们中的任何一个适合正确进入代码。组合二维数组以形成一个三维阵列
该程序模拟二维阵列上点源波的扩散,三维阵列显示介质的位移如何在波长的过程中变化。
def make_wave_snapshot(size,wavelength,phase):
waves_array = np.zeros((size,size),np.float)
if size%2==0:
for y in range(size):
for x in range(size):
r = math.hypot((size/2 - x - 0.5),(size/2 - y - 0.5))
d = np.sin((2*math.pi*r/wavelength)-phase)/np.sqrt(r)
waves_array[y,x] = d
dp.display_2d_array(waves_array) #This is in another module altogether
return waves_array #Displays array showing values
else:
return 'Please use integer of size.'
def make_wave_sequence(size,wavelength,nsteps):
waves_sequence = np.zeros((nsteps,size,size),np.float)
if nsteps%1==0:
for z in range(nsteps):
make_wave_snapshot(size,wavelength,(2*math.pi*z/nsteps))
waves_sequence = ???
return waves_sequence #Displays array showing values
else:
return 'Please use positive integer for number of steps'
问题是将'wave_array'转换为'wave_sequence'。如果您编写任何代码,将会非常赞赏慷慨的评论。非常感谢!
我想我看到你在驾驶什么......如果我的回答(下)不是你在想什么,可以请你在'for'循环之前和之后给你想要的'waves _sequence'的例子吗? – Mike