【发布时间】:2010-11-08 00:21:02
【问题描述】:
我需要初始化一些三维点,我希望它们在整个立方体中等距分布。有没有创造性的方法来做到这一点?
我正在使用迭代期望最大化算法,我希望我的初始向量均匀地“跨越”空间。
例如,假设我想在一个大小为 1x1x1 的立方体中平均分配八个点。我想要边长为 0.333 的立方体角上的点,在较大的立方体内居中。
下面是一个 2D 示例。请注意,红点与彼此和边缘等距。我希望 3D 也一样。
在点数没有整数立方根的情况下,我可以在排列中留下一些“间隙”。
目前我正在取点数的立方根,并使用它来计算点数和它们之间的所需距离。然后我遍历这些点并递增 X、Y 和 Z 坐标(交错以使 Y 在 X 循环回 0 之前不会递增,对于 Z 而言与 Y 相同)。
如果在 MATLAB 中有一种简单的方法可以做到这一点,我很乐意使用它。
【问题讨论】:
-
您没有完全定义问题,例如 3D 立方体中有很多可能的 2 点布局。
-
3d 通常很难用文字解释。你能给我们一张草图吗?
-
为什么你的 8 分会出现在 1/3 的立方体中?为什么不是 1/2 立方体或 9/10 立方体?
-
我希望所有点彼此之间以及与包含立方体的侧面等距。
-
“彼此和包含立方体的侧面等距”?我不确定是否一定有总是满足这些条件的解决方案。
标签: algorithm matlab math 3d expectation-maximization