我是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)
这给了我"语法无效"。
解决此错误需要解决哪些问题?
答案 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)]