对于循环错误?

时间:2016-04-21 17:50:24

标签: python matlab for-loop

我是Python的新手,但我正在努力学习。我试图在Python中重新创建一个Matlab for循环。 Matlab for循环如下所示:

for i = 2:(L-1)
    Acceleration_RMT5_x(i-1) = (RMT5(i+1,1)-2*RMT5(i,1)+RMT5(i
    1,1))/(1/FrameRate)^2;
end

数据类型为float64,是288x1向量。到目前为止,我的Python是:

for i in RMT5x:

  Acceleration_RMT5x = RMT5x[i+1] -2*RMT5x[i] +RMT5x[i-1]/(1/250)^2)

这给了我"语法无效"。

解决此错误需要解决哪些问题?

2 个答案:

答案 0 :(得分:2)

要在Python中提升某些功能,您需要**而不是^

此外,您正在遍历RMT5x,但您正尝试使用值(i)作为索引。相反,你想循环索引。

Acceleration_RMT5x = list()

for i in range(1, len(RMT5x)-1):
    Acceleration_RMT5x.append(RMT5x[i+1] -2*RMT5x[i] +RMT5x[i-1]/(1./250)**2)

答案 1 :(得分:0)

我会使用列表理解:

import numpy as np
Acceleration_RMT5x = [np.power( (RMT5(i+1,1)-2*RMT5(i,1)+RMT5(i-1,1))/(1/FrameRate), 2)]