小编Jus*_*son的帖子

将Python MeshGrid拆分为单元格

问题陈述

需要将N维MeshGrid拆分为“多维数据集”:

例)二维情况:

(-1,1)|(0,1)|(1,1)

(-1,0)|(0,0)|(1,0)

(-1,-1)|(0,-1)|(1,-1)

将有4个单元格,每个单元格具有2 ^ D点:

我希望能够处理网格,将每个单元的坐标点放入容器中以进行进一步处理。

Cells =   [{(-1,1) (0,1)(-1,0),(0,0)},

          {(0,1),(1,1),(0,0),(1,0)},

          {(-1,0),(0,0)(-1,-1),(0,-1)}

          {(0,0),(1,0)(0,-1),(1,-1)}]
Run Code Online (Sandbox Code Playgroud)

我使用以下代码为任意尺寸d生成网格:

grid = [np.linspace(-1.0 , 1.0, num = K+1) for i in range(d)]
res_to_unpack = np.meshgrid(*grid,indexing = 'ij')
Run Code Online (Sandbox Code Playgroud)

哪个有输出:

[array([[-1., -1., -1.],
   [ 0.,  0.,  0.],
   [ 1.,  1.,  1.]]), array([[-1.,  0.,  1.],
   [-1.,  0.,  1.],
   [-1.,  0.,  1.]])]
Run Code Online (Sandbox Code Playgroud)

因此,我希望能够为给定的D维网格生成上述单元容器。在给定的K上除以2的幂。

我需要这个容器,因此对于每个像元,我需要引用所有关联的2 ^ D点并计算距原点的距离。

编辑说明

K应该将网格划分为K ** D个像元,并具有(K + 1)** D个点。每个像元应具有2 ** D个点。每个“单元”的体积为(2 ​​/ K)^ D。

所以对于K = 4,D = 2

Cells = [ …
Run Code Online (Sandbox Code Playgroud)

python simulation geometry numpy computational-geometry

1
推荐指数
1
解决办法
322
查看次数