2016-10-13 6 views
1

In Matlab muss ich Zeichen (d. H. {-1,1}) nach dem Zufallsprinzip generieren. Ich habe eine Lösung herausgebracht, aber ich muss diese leichter haben. Meine Lösung beinhaltet das Aufrufen von zwei Funktionen, einer Multiplikation (obwohl es eine binäre Verschiebung ist) und einer Subtraktion.Wie kann man Zufallszahlen/{- 1,1} effizient in Matlab erzeugen?

Dies ist mein Code:

L=1000; 
x=2*round(rand(L,1))-1; 

Antwort

1

Verwenden Sie die folgenden +1 zu erhalten, wenn die Zufallszahl größer ist als 0.5 und -1 anders ist:

(rand(L,1) > 0.5)*2 - 1 

oder ähnlich mit randi:

randi([0,1], L, 1)*2 - 1 
Verwandte Themen