我有一个MATLAB代码,我想将其转换为python。它非常简单,但我不知道如何在python中编写它。这是代码:
for n=1:N
nbefore=n-1;
nafter=n+1;
ynew(n)=dt*u(n)+y(n);
unew(n)=dt*(k/m)*(y(nafter)+y(nbefore);
end
答案 0 :(得分:0)
似乎这只是较大程序的一部分,因此我无法填写您未显示的内容。但这部分将是这样的:
for n in range (1, N + 1):
nbefore = n - 1
nafter = n + 1
ynew[n] = dt * u[n] + y[n]
unew[n] = dt * (k / m) * (y[nafter] + y[nbefore])
答案 1 :(得分:0)
在使用u
和y
时,我会对nbefore
和nafter
的索引要小心,这样我就不会出现索引超出范围的错误。
这是一种Pythonic方式 -
ynew = [dt * u[i] + y[i] for i in xrange(1,n+1)]
unew = [dt * (k / m) * (y[i+1] + y[i-1]) for i in xrange(1,n+1)]