如何将网格世界的大小增加 1000 倍



我正在使用一个程序,我必须在其中输入环境的地图。输入表单如下所示。

self.map=[   [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                        [1, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1],
                        [1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
                        [1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 1, 1],
                        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1],
                        [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]

我想将给定结构的大小增加一千倍并保持结构的形式。增加后结构尺寸将为18000x6000。代码如下所示

有人可以向我建议一种实现这一目标的方法或任何其他方法吗?

如果你真的想使用Python的列表(numpy的数组更适合大型矩阵(,你可以使用

repeatfactor = 1000
mat = self.map  # copy reference, not data
m = len(mat)
n = len(mat[0])
newmatrix = [[mat[r % m][c % n] 
    for c in range(n * repeatfactor)]
    for r in range(m * repeatfactor)]

尝试np.repeat两次 - 每个轴一次。不是最漂亮的,但应该有效。所以像这样:

map_array = np.array(self.map)
map_array = np.repeat(map_array, 1000, axis=0)
map_array = np.repeat(map_array, 1000, axis=1)

最新更新