Zufallsmatrizen in Matlab
In dieser Lektion werde ich erläutern, wie man in Matlab eine Matrix mit Zufallswerten mittels der rand()-Funktion erstellt.
rand(Zeilen, Spalten)
Die rand()-Funktion nimmt zwei Parameter entgegen:
- Anzahl der Zeilen der Matrix
- Anzahl der Spalten der Matrix
Mit dieser Funktion wird eine Zufallsmatrix generiert, die aus Zufallswerten im Bereich von 0 bis 1 besteht.
Beachten Sie, dass Matlab standardmäßig Zufallswerte erzeugt, die gleichmäßig über alle möglichen Werte verteilt sind. Es besteht jedoch auch die Möglichkeit, andere Wahrscheinlichkeitsverteilungen für die Erzeugung von Zufallszahlen zu verwenden.
Hier ein praktisches Beispiel:
Um eine rechteckige 2x3-Matrix mit Zufallswerten zu erstellen, geben Sie rand(2,3) ein.
>> rand(2,3)
Matlab erstellt daraufhin eine 2x3 Zufallsmatrix, indem es Zufallswerte zwischen 0 und 1 einsetzt.
Standardmäßig sind die Zufallszahlen im Bereich (0,1) gleichverteilt, d.h., sie haben die gleiche Wahrscheinlichkeit zu erscheinen.
ans =
0.495435 0.651593 0.093860
0.449491 0.788723 0.028347
Um eine Zufallsmatrix mit Werten zwischen 0 und 10 zu erzeugen, multiplizieren Sie die rand()-Funktion mit 10.
Das Ergebnis ist eine Zufallsmatrix mit zufälligen reellen Zahlen im Bereich von 0 bis 10.
>> rand(2,3)*10
ans =
1.35346 1.04275 0.73193
5.51170 0.39138 8.66168
Um eine Zufallsmatrix mit ganzzahligen Werten zwischen 0 und 10 zu erhalten, nutzen Sie die Rundungsfunktion round().
Geben Sie beispielsweise round(rand(2,3)*10) ein, um eine 2x3-Matrix mit Ganzzahlen zwischen 0 und 10 zu erstellen.
>> round(rand(2,3)*10)
ans =
3 9 10
3 6 9
Alternativ können Sie auch mit der Funktion randi() eine Matrix mit zufälligen ganzzahligen Werten generieren.
randi(maximaler Wert, Zeilen, Spalten)
Die randi()-Funktion erzeugt ausschließlich zufällige Ganzzahlen und nimmt drei Parameter auf:
- Maximal möglicher Zufallswert
- Anzahl der Zeilen in der Matrix
- Anzahl der Spalten in der Matrix
So generieren Sie beispielsweise mit randi(10,2,3) eine Matrix:
>> randi(10,2,3)
ans =
1 9 3
2 1 10
Auch hier erzeugt Matlab eine Zufallsmatrix, diesmal jedoch mit ganzzahligen Werten.
Wie generiert Matlab Zufallszahlen? Die Wahrheit ist, dass diese Werte nicht echt zufällig sind. Sie sind "pseudozufällig", da sie von einem Algorithmus erzeugt werden, der als Parameter die aktuelle Systemzeit des Computers verwendet. Es ist ebenfalls möglich, bei Bedarf dieselbe Folge von Zufallszahlen zu reproduzieren. Dies wird später näher erläutert.