Zufällige Permutation mit MATLAB
Dieses Tutorial behandelt das Generieren von Vektoren, die eine zufällige Permutation von ganzen Zahlen enthalten, mit der Funktion randperm()
in MATLAB.
Generieren von Vektoren mit zufälliger Permutation von ganzen Zahlen mit der Funktion randperm()
in MATLAB
Wir können die in MATLAB eingebaute Funktion randperm()
verwenden, um Vektoren zu generieren, die eine zufällige Permutation von ganzen Zahlen enthalten. Wir können die größte ganze Zahl im Abtastintervall in der Funktion randperm()
definieren, und die kleinste ganze Zahl im Abtastintervall ist standardmäßig eins.
Lassen Sie uns zum Beispiel mit der Funktion randperm()
sechs ganze Zahlen zwischen 1 und 6 generieren. Siehe den Code unten.
clc
v = randperm(6)
Ausgabe:
v =
3 5 6 1 4 2
Die Ausgabe ändert sich, wenn wir diesen Code erneut ausführen, da diese Werte zufällig sind. Wir können die Anzahl der zufälligen Permutationszahlen mit dem zweiten Argument der Funktion randperm()
definieren.
Wir können nur eine Zahl kleiner oder gleich dem ersten Argument definieren, da die generierten Zahlen eindeutig sind und nicht wiederholt werden können. Wenn wir eine Zahl definieren, die größer als das erste Argument ist, zeigt MATLAB einen Fehler an.
Lassen Sie uns zum Beispiel mit der Funktion randperm()
zwei zufällige Permutationszahlen zwischen 1 und 6 generieren. Siehe den Code unten.
clc
v = randperm(6,2)
Ausgabe:
v =
1 3
Nur zwei Zahlen in der Ausgabe ändern sich, wenn wir den Code erneut ausführen, da die generierten Zahlen zufällig sind. Mit der Funktion rng
können wir auch den Zustand eines Zufallszahlengenerators speichern.
Der zuvor gespeicherte Zustand kann verwendet werden, um dieselbe Folge von ganzen Zahlen zu generieren. Lassen Sie uns zum Beispiel mit den Funktionen randperm()
und rng
zwei Vektoren mit derselben Sequenz generieren.
Siehe den Code unten.
clc
s = rng;
v1 = randperm(6,2)
rng(s)
v2 = randperm(6,2)
Ausgabe:
v1 =
1 2
v2 =
1 2
In der Ausgabe enthalten beide Vektoren v1 und v2 dieselben Elemente.
Wenn wir den Code erneut ausführen, ändert sich die Ausgabe, aber die Elemente beider Vektoren bleiben unverändert. Wenn wir den zuvor gespeicherten Zustand nicht verwenden, haben die Vektoren unterschiedliche Elemente.