我是 Python 的初学者,我确实理解在这种情况下出了什么问题,SetVel[i+4]
超出了范围。但我无法纠正它。任何帮助都会很棒。这是我的代码:
OutSmooth = []
IndexOut = []
IndSmooth = []
length = len(SetVel)
for i in range(2, length-3):
diffnext = (SetVel[i+4])- (SetVel[i+3])
diffprev = (SetVel[i+1])-(SetVel[i])
diff1 = SetVel[i+2]-SetVel[i+1]
diff2 = SetVel[i+3]-SetVel[i+2]
if diff1 < 1.5*diffprev or diff2 < 1.5*diffnext:
IndSmooth.append(SetVel.index(SetVel[i+2]))
else:
OutSmooth.append(SetVel[i+2])
PS:对于那些询问这实际上是什么的人:这是我对非导数曲线平滑的尝试。在我的主程序中,我确实有一个基于 NumPy 的导数曲线平滑机制,但我这样做是为了我的理解和备份。谢谢
编辑:
break
在条件起作用以消除错误之后,但代码仅运行该块一次。仅附加一个索引