【发布时间】:2017-07-07 01:18:04
【问题描述】:
for i in range(2,Nx-2):
lyr1[i]=lyr0[i]-coef*(lyr0[i]*(lyr0[i+1]-lyr0[i-1])/2+(dsqr/(deltax)**2)*(lyr0[i+2]-2*lyr0[i+1]+2*lyr0[i-1]-lyr0[i-2]))
lyr1=lyr0[0:Nx]-coef*(lyr0[0:Nx]*(lyr0[2:Nx]-lyr0[0:Nx-2])/2+(dsqr/(deltax)**2)*(lyr0[1:Nx+1]-2*lyr0[0:Nx]+2*lyr0[2:Nx-2]-lyr0[3:Nx-3]))
我正在尝试将我的 for 循环(上图)更改为对数组的操作。我目前收到广播错误,但我需要能够只选择数组的一部分以匹配我的数值积分方案。任何帮助是极大的赞赏。
【问题讨论】:
-
这段代码在做什么。
-
你在使用 numpy 吗?
-
这是一个较长代码的sn-p,但它用于数值积分。我在 y 方向上有层(它们是离散时间的层),而 x 方向在每个时间层上都是空间的。我需要在 x 刻度上取点并加/减/除/乘以及时组成下一层。
-
是的,我正在使用 numpy。很抱歉没有提到这一点。
-
把它分成我们一眼就能看懂的片段。我还看到重复使用像
lyr0[0:Nx]这样的索引。
标签: python python-3.x numpy