我有一些流程图,它们代表了寻找一个时间序列的波峰和波谷的算法
我试图将它们转换为Python,但我不知道如何修复“GOTO”的问题
def minzo(trough,peak, i,x,r,p,sp):
f=-1
i=i+1
if i == (len(ts) - 1):
endzo1 = endzo()
else:
if x[i] < trough:
trough=x[i]
else:
if x[i]-trough>=r:
p=p+1
sp.append(trough)
peak=ts[i]
maxzo1=maxzo()
return trough,peak,i,x,r,p,sp
x = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
sp = []
r = 1
trough = x[0]
peak = x[0]
i = -1
while i<len(x):
i = i + 1
if i == (len(x)-1):
GOTO ENDZO???
else:
if x[i]>peak:
peak=x[i]
if peak-trough>=r:
sp.append(trough)
GOTO MAXZO
else:
if x[i]<trough:
trough=x[i]
if peak-trough>=r:
sp.append(peak)
GOTO MINZO
流程图如下:
开始
GOTOs
这是正确的吗
相关问题 更多 >
编程相关推荐