2016-04-21 12 views
1

Betrachten Sie den n-Würfel (definiert here) mit n> 3. Nehmen wir an, dass es am Ursprung der kartesischen Ebene zentriert ist und jede Kante die Länge 10 hat.Zufälliges Zeichnen von einem Hyperwürfel in Matlab

Ich möchte ein Stück Code in Matlab schreiben, das mir erlaubt, zufällig einen Punkt (mit n Koordinaten) von diesem Hyperwürfel zu ziehen. Gibt es eine Möglichkeit, dies zu tun, ohne ein n-dimensionales Gitter vordefinieren zu müssen? In meiner speziellen Anwendung n = 11.

Antwort

3

um 1 Punkt von dem Volumen eines n-dimensionalen Hyperwürfel mit Seiten s, zu zeichnen mit allen Punkten gleiche Wahrscheinlichkeit haben, rufen Sie

s = 10; 
point = (rand(1,n)-0.5)*s; 

die 1 mit einer größeren Zahl ersetzen, falls Sie viele zeichnen mögen Punkte auf einmal.

+0

Wo ist das Zentrum? Ist es möglich, ein anderes Zentrum als den Ursprung zu verwenden? – user3285148

3

Erweiterung Jonas' Antwort, wenn Sie ein Zentrum angeben möchten, dies tun:

center = [1.0 -1.0 2.0 -2.0 ...]; 
s = 10; 
point = (rand(1,n)-0.5)*s + center; 
Verwandte Themen