无法从列表中删除 vstack 元素
Can't remove vstack element from a list
我的列表由 vstack 元素组成:
X = vstack([x,y,time])
我正在使用此代码从列表中删除点
# Remove old points from the list
point_tempo = []
for i in range(0,len(self.points)):
if self.points[i][0,0] <-0.5:
point_tempo.append(self.points[i])
for j in range(0,len(point_tempo)):
self.points.remove(point_tempo[j])
我收到这个错误:
File
"/home/group5/Documents/catkin_ws/src/platoon_pkgv2/nodes/bubble_odom.py",
line 121, in sync_odo_cb
self.points.remove(point_tempo[j]) ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or
a.all()
我是不是漏掉了什么?
code of remove
为了找到要删除的元素,遍历列表并将每个元素与要删除的元素进行比较,使用 ==
运算符。问题是这个运算符在 vstack
上不只是 return 布尔值,而是 vstack
成对布尔值。那是你的错误。
你最好做的是记录索引并按索引删除它们的元素:
# Remove old points from the list
point_tempo = []
for i, point in enumerate(self.points)): # enumerate is your friend
if point[0,0] < -0.5:
point_tempo.append(i)
for i in reversed(point_tempo): # reverse order so that indices remain valid
self.points.pop(i)
我的列表由 vstack 元素组成:
X = vstack([x,y,time])
我正在使用此代码从列表中删除点
# Remove old points from the list
point_tempo = []
for i in range(0,len(self.points)):
if self.points[i][0,0] <-0.5:
point_tempo.append(self.points[i])
for j in range(0,len(point_tempo)):
self.points.remove(point_tempo[j])
我收到这个错误:
File "/home/group5/Documents/catkin_ws/src/platoon_pkgv2/nodes/bubble_odom.py", line 121, in sync_odo_cb self.points.remove(point_tempo[j]) ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我是不是漏掉了什么?
code of remove
为了找到要删除的元素,遍历列表并将每个元素与要删除的元素进行比较,使用 ==
运算符。问题是这个运算符在 vstack
上不只是 return 布尔值,而是 vstack
成对布尔值。那是你的错误。
你最好做的是记录索引并按索引删除它们的元素:
# Remove old points from the list
point_tempo = []
for i, point in enumerate(self.points)): # enumerate is your friend
if point[0,0] < -0.5:
point_tempo.append(i)
for i in reversed(point_tempo): # reverse order so that indices remain valid
self.points.pop(i)