我試圖用 a 中的新值更改數(shù)組的行for loop,但無法使其工作。問題與量子物理學(xué)中波包的傳播有關(guān)。我試過使用該numpy.dot()功能,但那不起作用,我嘗試制作一個(gè)更簡(jiǎn)單的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我希望輸出是一個(gè) 400x1000 的數(shù)組,其中包含 Phi 和 Boxfunc 之間乘法的新計(jì)算值。當(dāng)我到達(dá) for 循環(huán)中的 Boxfunc 時(shí),我只是收到錯(cuò)誤消息“無法將輸入數(shù)組從形狀(400)廣播到形狀(1000)”。
1 回答

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