MATLAB Zufallsmatrix erstellen

Ammar Ali 4 Juli 2021
  1. Generieren Sie Zufallszahlen mit der Funktion rand() in MATLAB
  2. Generieren Sie Zufallszahlen mit der Funktion randi() in MATLAB
  3. Generieren Sie Zufallszahlen mit der Funktion randn() in MATLAB
  4. Generieren Sie Zufallszahlen mit der Funktion randperm() in MATLAB
  5. Generieren Sie Zufallszahlen mit der Funktion betarnd() in MATLAB
  6. Generieren Sie Zufallszahlen mit der Funktion random() in MATLAB
MATLAB Zufallsmatrix erstellen

In diesem Tutorial wird erläutert, wie man Zufallszahlen mit den Funktionen rand(), randi(), randn(), randperm(), betarand() und random() generiert in MATLAB.

Generieren Sie Zufallszahlen mit der Funktion rand() in MATLAB

Wenn Sie gleichmäßig verteilte Zufallszahlen generieren möchten, können Sie die Funktion rand() in MATLAB verwenden, die Zufallszahlen zwischen 0 und 1 generiert. Sie können auch die Größe der Matrix mit Zufallswerten angeben, und jeder Wert wird zwischen 0 und 1, die Sie nach Ihren Wünschen skalieren können, indem Sie sie mit einem Skalierer multiplizieren. Lassen Sie uns zum Beispiel mit der Funktion rand() eine 2-mal-2-Matrix von Zufallswerten generieren. Siehe den Code unten.

rn = rand(2)

Ausgabe:

rn =

    0.2259    0.2277
    0.1707    0.4357

Wie Sie in der Ausgabe sehen können, wird eine 2-mal-2-Matrix mit Zufallswerten zwischen 0 und 1 generiert. Wenn Sie den Bereich der Zufallszahlen angeben möchten, müssen Sie die folgende Formel verwenden.

rn = a + (b-a).*rand(n,1)

In dieser Formel ist a die untere Grenze, b ist die obere Grenze und n ist die Länge der Zufallszahlen. Lassen Sie uns beispielsweise zehn Zufallszahlen im Bereich von 2 bis 8 generieren. Siehe den folgenden Code.

a = 2;
b = 8;
n = 10;
rn = a + (b-a).*rand(n,1)

Ausgabe:

rn =

    7.5403
    4.5812
    3.1089
    7.4293
    7.8785
    4.6332
    2.6667
    3.5484
    4.4523
    5.5694

Es gibt zehn Zufallszahlen im Bereich von 2 bis 8. Wenn nur ganze Zahlen ausgegeben werden sollen, können Sie diese Zufallszahlen mit der Funktion round() in ganze Zahlen umwandeln, die eine Gleitkommazahl auf die nächste ganze Zahl rundet . Sie können die Größe und den Datentyp der Zufallszahlen auch aus einem bestehenden Array klonen, indem Sie die Funktion size() für die Größe und die Eigenschaft like für den Datentyp verwenden. Lassen Sie uns beispielsweise ein Array erstellen und Zufallswerte entsprechend der Größe und dem Datentyp dieses Arrays generieren. Siehe den Code unten.

v = [2 3 1 5]
rn = rand(size(v),'like',v)

Ausgabe:

v =

     2     3     1     5


rn =

    0.4886    0.5785    0.2373    0.4588

Die Größe und der Datentyp des Arrays und der Zufallszahlen sind gleich. Unter diesem Link finden Sie weitere Details zur Funktion rand().

Generieren Sie Zufallszahlen mit der Funktion randi() in MATLAB

Die obige Funktion generiert Gleitkomma-Zufallszahlen, aber wenn Sie zufällige Ganzzahlen generieren möchten, können Sie die Funktion randi() in MATLAB verwenden, die zufällige Ganzzahlen von 1 bis zu einer angegebenen Ganzzahl generiert, die Sie als a . angeben können erstes Argument in der Funktion randi(). Sie können auch die Größe der Ausgabematrix mit Zufallswerten als zweites und drittes Argument angeben. Lassen Sie uns zum Beispiel eine 3-mal-3-Matrix generieren, die zufällige ganze Zahlen von 1 bis 15 enthält. Siehe den folgenden Code.

rn = randi(15,3,3)

Ausgabe:

rn =

     6     1     8
    11    12    14
     3     8    10

Die Matrix hat die Größe 3-mal-3, die zufällige ganze Zahlen zwischen 1 und 15 enthält. Sie können auch zufällige ganze Zahlen zwischen einem bestimmten Bereich generieren, und Sie müssen nur den Bereich in eckigen Klammern als erstes Argument des randi()-Funktion. Lassen Sie uns beispielsweise 10 Zufallszahlen zwischen -10 und 10 generieren. Siehe den folgenden Code.

rn = randi([-10,10],10,1)

Ausgabe:

rn =

     2
     8
     6
     2
    -7
    -5
     8
   -10
     0
    -7

Es gibt zehn Zufallszahlen im Bereich von -10 bis 10. Sie können auch den Datentyp der Integer-Zahlen definieren, indem Sie den Datentypnamen in der Funktion randi() übergeben. Folgende Datentypen stehen zur Auswahl: 'single', 'double', 'int8', 'uint8', 'int16', 'uint16', 'int32' , oder 'uint32'. Sie können die Größe der Zufallszahlen aus der Größe des vorhandenen Arrays mit der Funktion size() und dem numerischen Datentyp mit der Eigenschaft like definieren. Lassen Sie uns beispielsweise eine Matrix mit Zufallswerten generieren, die von der Größe und dem numerischen Datentyp eines vorhandenen Arrays abhängt. Siehe den Code unten.

v = [1 2; 6 7]
rn = randi(7,size(v),'like',v)

Ausgabe:

v =

     1     2
     6     7


rn =

     6     1
     7     7

Die Größe und der Datentyp des Arrays und der Zufallszahlen sind gleich. Unter diesem Link finden Sie weitere Details zur Funktion randi().

Generieren Sie Zufallszahlen mit der Funktion randn() in MATLAB

Wenn Sie normalverteilte Zufallszahlen generieren möchten, können Sie die Funktion randn() in MATLAB verwenden. Die Funktion randn() ist mit der Funktion rand() identisch, nur mit dem Unterschied im Verteilungstyp. Die Funktion rand() erzeugt gleichverteilte Zufallszahlen, während die Funktion randn() normalverteilte Zufallszahlen erzeugt. Sie können jede dieser Funktionen je nach Ihren Anforderungen verwenden. Unter diesem Link finden Sie weitere Details zur Funktion randn.

Generieren Sie Zufallszahlen mit der Funktion randperm() in MATLAB

Wenn Sie eine zufällige Permutation von ganzen Zahlen erzeugen möchten, können Sie die Funktion randperm() in MATLAB verwenden. Die zufällige Permutation der ganzen Zahlen liegt zwischen 1 und einer bestimmten Zahl, die Sie in der Funktion randperm() als erstes Argument definieren können. Sie können auch die Anzahl der Ganzzahlen definieren, die Sie als zweites Argument in der Funktion generieren möchten. Lassen Sie uns zum Beispiel eine zufällige Permutation von 6 eindeutigen ganzen Zahlen generieren. Siehe den Code unten.

rn = randperm(10,5)

Ausgabe:

rn =

     2     3    10     8     7

Alle ganzen Zahlen sind eindeutig und reichen von 1 bis 10. Beachten Sie, dass die Funktion randperm() mit der Funktion randi() identisch ist, mit dem Unterschied, dass die Funktion randperm() eindeutige ganze Zahlen erzeugt, während in der Funktion randi() Funktion können die ganzen Zahlen wiederholt werden. Unter diesem Link finden Sie weitere Details zur Funktion randperm.

Generieren Sie Zufallszahlen mit der Funktion betarnd() in MATLAB

Wenn Sie Zufallszahlen aus der Beta-Verteilung generieren möchten, können Sie die Funktion betarnd() in MATLAB verwenden. Diese Funktion generiert zufällige ganze Zahlen, die durch das erste und zweite Argument angegeben werden: Vektoren, Matrizen oder Arrays derselben Größe. Lassen Sie uns zum Beispiel eine 1-mal-5-Matrix von Zufallszahlen aus der Beta-Verteilung generieren, indem wir zwei Vektoren als Eingabe verwenden. Siehe den Code unten.

a = [1 2 3 4 5];
b = [9 8 7 6 5];
rn = betarnd(a,b)

Ausgabe:

rn =

    0.1234    0.1847    0.3334    0.2689    0.3678

Sie können auch die Größe der Ausgabematrix festlegen, indem Sie sie im dritten und vierten Argument der Funktion betarnd() definieren. Unter diesem Link finden Sie weitere Details zur Funktion betarnd().

Generieren Sie Zufallszahlen mit der Funktion random() in MATLAB

Wenn Sie Zufallszahlen aus einem bestimmten Verteilungstyp generieren möchten, können Sie die Funktion random() in MATLAB verwenden. Als erstes Argument müssen Sie den Namen der Verteilung definieren und danach die Verteilungsparameter übergeben. Lassen Sie uns zum Beispiel normalverteilte Zufallszahlen mit einem Sigma-Wert von 0 und einem Mu-Wert von 1 mit der Funktion random() generieren. Siehe den Code unten.

s = 0;
m = 1;
rn = random('Normal',s,m)

Ausgabe:

rn =

   -0.1649

In der Funktion können Sie Ihren gewünschten Verteilungsnamen definieren. Sie können viele Arten von Verteilungen verwenden wie: Beta, Binomial, Exponential, Gamma und viele mehr. Unter diesem Link finden Sie weitere Details zur Funktion Zufall.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Random

Verwandter Artikel - MATLAB Matrix