我试图检查数组中的前90个值(或直到数组的开头)以确定某个值是否已存在。
到目前为止,我的代码只是检查以前的值:
overt = np.array([])
if frame ==0:
overt = np.append(overt,lachange)
else:
pframe = frame - 1
plachange = overt[pframe]
if lachange ==0:
overt = np.append(overt,lachange)
elif lachange ==1:
if plachange == lachange:
overt = np.append(overt,0)
lachange = 0
else:
overt = np.append(overt,lachange)
如果车辆已改变车道,则值为1;如果车辆已经改变,则值为0但如果在3秒的时间段内值为1,则我希望仅记录第一个,并且以下值为0.
答案 0 :(得分:1)
据我了解,您想要做的是: 如果lachange为1则将1附加到公开,并且最后90个值都是非-1 将0添加到其他地方
def add_change(lachange, overt):
if (lachange == 1) and (not (1 in overt[-90:])):
overt.append(1)
else
overt.append(0)
公开[-90:]获取公开的最后90个值。如果少于90个值,则会抓取所有内容(如果明显为空,则不会抓取任何内容)。
公开[ - 90:]中的1如果其中有1(已发生车道变换)则返回True,否则返回False。用于不翻转值
这会检查是否有换道(lachange == 1)并且最后90个项目中没有换道。如果是这样,请为其添加1。否则,添加0
编写的代码假定是列表而不是numpy数组。如果是数组,则必须更改append语句,并在结尾处返回