我有以下数组,我想扩展 X 周围的区域并将 X 周围的数组元素从 0 变为 1。关于如何做到这一点有什么建议吗?
从这个数组
[[0,0,0,0,0,0,0],
[0,0,0,x,0,0,0],
[0,0,0,0,0,0,0]]
到这个数组
[[0,0,1,1,1,0,0],
[0,0,1,x,1,0,0],
[0,0,1,1,1,0,0]]
不是最佳解决方案,但对我有用。我使用 ROS 和 nav_msgs/OccupancyGrid 消息:
def draw_thickened_grid_point(self, index):
indexes_arround = []
indexes_arround.append(index + 1)
indexes_arround.append(index - 1)
indexes_arround.append(index + self._map_width)
indexes_arround.append(index - self._map_width)
indexes_arround.append(index + self._map_width+1)
indexes_arround.append(index + self._map_width-1)
indexes_arround.append(index - self._map_width+1)
indexes_arround.append(index - self._map_width-1)
self._grid.data[int(index)] = 100
for ind in indexes_arround:
if(self._grid.data[int(ind)] == 0):
self._grid.data[int(ind)] = 30
这是一个可能的解决方案,可以改进。我真的很想看到更好的实施。
for i in range(len(a)):
for j in range(len(a[i])):
if (a[i][j] =="x"):
if(len(a)>i+1):
a[i+1][j] =1
if(len(a[i])>j+1):
a[i+1][j+1] =1
if(len(a[i])>j-1):
a[i+1][j-1] =1
if(len(a)>i-1):
a[i-1][j] =1
if(len(a[i])>j+1):
a[i-1][j+1] =1
if(len(a[i])>j-1):
a[i-1][j-1] =1
if(len(a[i])>j+1):
a[i][j+1] =1
if(len(a[i])>j-1):
a[i][j-1] =1
打印(一)