webentwicklung-frage-antwort-db.com.de

Generieren Sie in MATLAB eine Zufallszahl in einem bestimmten Bereich

Wie kann ich in MATLAB eine Zufallszahl zwischen 13 und 20 generieren?

37
crowso

Wenn Sie nach gleichverteilten Pseudozufallszahlen suchen, verwenden Sie: 

randi([13, 20])
56
zellus
8
TimCodes.NET
r = 13 + 7.*Rand(100,1);

Dabei ist 100,1 die Größe des gewünschten Vektors

6
pcofre

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
1
ash_bobham

Sie können auch verwenden:

round(mod(Rand.*max,max-1))+min
0
moksef

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

0
M. Allahyari

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

0
PyMatFlow

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

0

Generieren Sie Werte aus der Gleichverteilung auf der Intervall [a, b].

      r = a + (b-a).*Rand(100,1);
0
user570593