Wie kann ich in MATLAB eine Zufallszahl zwischen 13 und 20 generieren?
Wenn Sie nach gleichverteilten Pseudozufallszahlen suchen, verwenden Sie:
randi([13, 20])
http://www.mathworks.com/help/techdoc/ref/Rand.html
n = 13 + (Rand(1) * 7);
r = 13 + 7.*Rand(100,1);
Dabei ist 100,1 die Größe des gewünschten Vektors
ocw.mit.edu ist eine großartige Ressource, die mir eine Menge geholfen hat. randi ist die beste Option, aber wenn Sie Lust auf Zahlen haben, versuchen Sie, die Bodenfunktion mit Rand zu nutzen, um das zu bekommen, was Sie wollen.
Ich zog eine Zahlenzeile und kam mit
floor(Rand*8) + 13
Sie können auch verwenden:
round(mod(Rand.*max,max-1))+min
Wenn Sie eine fließende Zufallszahl zwischen 13 und 20 benötigen
(20-13).*Rand(1) + 13
Wenn Sie eine ganzzahlige Zufallszahl zwischen 13 und 20 benötigen
floor((21-13).*Rand(1) + 13)
Hinweis: Beheben Sie das im Kommentar "Dies schließt 20 aus" erwähnte Problem, indem Sie 20 durch 21 ersetzen
Die beste Lösung ist randint
, aber diese Funktion erzeugt ganzzahlige Zahlen.
Sie können Rand
mit der Rundungsfunktion verwenden
r = round(a + (b-a).*Rand(m,n));
Dies erzeugt eine reelle Zufallszahl zwischen a und b, die Größe der Ausgabematrix ist m * n
wenn Sie alle Zahlen innerhalb eines bestimmten Bereichs zufällig generieren möchten, können Sie versuchen `r = randi ([a b], 1, d)
a = Startpunkt b = Endpunkt d = Wie viele Zahlen möchten Sie generieren, bedenken Sie jedoch, dass d kleiner oder gleich b-a sein sollte
Generieren Sie Werte aus der Gleichverteilung auf der Intervall [a, b].
r = a + (b-a).*Rand(100,1);