Äquidistante Punkte über einen Würfel

Ich muss einige dreidimensionale Punkte initialisieren und möchte, dass sie gleichmäßig über einen Würfel verteilt sind. Gibt es kreative Möglichkeiten, dies zu tun?

Ich verwende einen iterativen Expectation Maximization-Algorithmus und möchte, dass meine anfänglichen Vektoren den Raum gleichmäßig "überspannen".

Angenommen, ich habe acht Punkte, die ich in einem Würfel mit der Größe 1x1x1 gleichmäßig verteilen möchte. Ich möchte die Punkte an den Ecken eines Würfels mit einer Seitenlänge von 0,333, zentriert innerhalb des größeren Würfels.

Ein 2D-Beispiel finden Sie unten. Beachten Sie, dass die roten Punkte gleich weit voneinander und von den Rändern entfernt sind. Ich möchte dasselbe für 3D.

In Fällen, in denen die Anzahl der Punkte keine ganzzahlige Kubikwurzel hat, kann ich problemlos einige "Lücken" in der Anordnung belassen.

Momentan nehme ich die Kubikwurzel der Anzahl der Punkte und berechne daraus die Anzahl der Punkte und den gewünschten Abstand zwischen ihnen. Dann iteriere ich durch die Punkte und inkrementiere die X-, Y- und Z-Koordinaten (gestaffelt, sodass Y nicht inkrementiert wird, bis X auf 0 zurückkehrt, das gleiche gilt für Z in Bezug auf Y).

Wenn es in MATLAB eine einfache Möglichkeit gibt, würde ich sie gerne verwenden.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage