我试图用for loop
中的新值更改数组的行,但无法使其工作
这个问题和量子物理中波包的传播有关
我试过使用numpy.dot()
函数,但那不起作用,我试着做了一个更简单的for loop
函数
import numpy as np
sig = 10**(-8)
x0 = 50*10**(-9)
L = 200*10**(-9)
N = 400
Nx = 1000
x = np.linspace(x0, L, N)
expsig = np.exp(-((1/2)*(x-x0)**2)/(sig**2))
expimg = np.exp(1j*(x-x0))
Phi = (1/(np.pi**(1/4)*np.sqrt(sig))*expsig*expimg)
Boxfunc = np.zeros(shape = (N, Nx))
for i in range(0, N):
SINnpi = np.sin(((i*np.pi)/L)*x)
Boxfunc[i,:] = np.sqrt(2/L)*SINnpi
Y = Boxfunc[i,:]*Phi
我希望输出是一个400x1000数组,其中包含Phi和Boxfunc之间相乘的新计算值
当我到达for循环中的Boxfunc时,我刚刚收到错误消息“couldnobratedinput array from shape(400)into shape(1000)”
数组
x
有问题,它应该是x = np.linspace(x0, L, Nx)
,那么代码就可以工作了。 或者您可以定义Boxfunc = np.zeros(shape = (Nx, N))
。问题来自于x
和Boxfunc
之间的形状相关问题 更多 >
编程相关推荐