我試圖用 a 中的新值更改數組的行for loop,但無法使其工作。問題與量子物理學中波包的傳播有關。我試過使用該numpy.dot()功能,但那不起作用,我嘗試制作一個更簡單的for loop,有效的。import numpy as npsig = 10**(-8)x0 = 50*10**(-9)L = 200*10**(-9)N = 400Nx = 1000x = 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 時,我只是收到錯誤消息“無法將輸入數組從形狀(400)廣播到形狀(1000)”。
1 回答

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
array 有問題x
,應該是x = np.linspace(x0, L, Nx)
,然后你的代碼就可以工作了?;蛘吣梢远xBoxfunc = np.zeros(shape = (Nx, N))
. 問題出在x
和之間的形狀上Boxfunc
。
添加回答
舉報
0/150
提交
取消