我需要初始化一些三维点,并希望它们在立方体中均匀分布。有没有什么创造性的方法可以做到这一点?
我正在使用迭代期望最大化算法,我希望我的初始向量能够均匀地“覆盖”空间。
例如,假设我有八个点,我希望它们在一个大小为1x1x1的立方体中均匀分布。我希望这些点位于一个边长为0.333的立方体的角落,且该立方体居中于较大的立方体中。
下面是一个二维示例。请注意,红色点彼此之间和边缘等距离。我希望在三维中也是这样。
在点数没有整数立方根的情况下,我可以接受排列中留下一些“间隙”。
目前,我正在取点数的立方根,并使用它来计算点数和所需的距离。然后我遍历这些点并递增X、Y和Z坐标(错开,以便Y不会在X循环回0之前递增,Z也是如此)。
如果在MATLAB中有一种简单的方法可以实现这一点,我很乐意使用它。