4 Stimmen

Gibt es in Matlab eine Möglichkeit, mit dem Pseudozahlengenerator Zahlen innerhalb eines bestimmten Bereichs zu erzeugen?

Zum Beispiel:

round(7*rand(1,5))

Erzeugt 5 Zahlen zwischen 1 und 7 Gibt es eine Möglichkeit, 5 Zufallszahlen zwischen 5 und 7 zu generieren? Oder eine Abstraktion davon?

10voto

MatlabDoug Punkte 5724

Allgemeiner ausgedrückt:

minInt = 5;
maxInt = 7;
numInts = 10;

r = randi([minInt, maxInt],[1,numInts])

r =

 6     7     7     7     6     5     5     5     7     5

3 Stimmen

+1 an Sie @MatlabDoug, weil Sie die Dokumentation der RANDI-Funktion bis zum Ende gelesen haben.

5voto

gnovice Punkte 124264

Erstens, wenn Sie Zufallszahlen erzeugen wollen Ganzzahl Werte, ist es besser, die Funktion RANDI . Dann müssen Sie die Zufallszahlen nur noch entsprechend verschieben und skalieren. Das folgende Beispiel sollte Ihnen Zufallszahlen zwischen 5 und 7 liefern:

nums = randi(3,[1 5])+4;

EDITAR: Wie Amros Kommentar und Dougs Antwort darauf hinweisen, gibt es eine einfachere Lösung, bei der Sie den Bereich direkt als erstes Argument für RANDI :

nums = randi([5 7],[1 5]);

4 Stimmen

Können Sie den gewünschten Bereich auch direkt angeben: randi([5 7],[1 5])

0 Stimmen

@Amro: Gutes Argument. Irgendwie habe ich diese Zeile in der Dokumentation übersprungen ;)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X