Hauptinhalt

rand

Gleichmäßig verteilte Zufallszahlen

Beschreibung

X = rand gibt einen zufälligen Skalar zurück, entnommen aus der einheitlichen Verteilung im Intervall (0;1).

X = rand(n) gibt eine nxn-Matrix aus einheitlich verteilten Zufallszahlen zurück.

Beispiel

X = rand(sz1,...,szN) gibt ein sz1x...xszN-Array aus Zufallszahlen zurück, wobei sz1,...,szN die Größe der jeweiligen Dimension angibt. rand(3,4) gibt beispielsweise eine 3x4-Matrix zurück.

Beispiel

X = rand(sz) gibt ein Array aus Zufallszahlen zurück, bei dem der Größenvektor sz size(X) definiert. rand([3 4]) gibt beispielsweise eine 3x4-Matrix zurück.

Beispiel

X = rand(___,typename) gibt ein Array aus Zufallszahlen mit dem Datentyp typename zurück. Die Eingabe typename kann "single" oder "double" sein. Sie können ein beliebiges der Eingabeargumente aus den vorherigen Syntaxen verwenden.

Beispiel

X = rand(___,like=p) gibt ein Array aus Zufallszahlen wie p zurück, also mit demselben Datentyp und derselben Komplexität (reell oder komplex) wie p. Sie können entweder typename oder like festlegen, nicht jedoch beides.

Beispiel

X = rand(s,___) generiert Zahlen aus einem Zufallszahlen-Stream s statt dem globalen Standard-Stream. Verwenden Sie RandStream, um einen Stream zu erstellen. Sie können s angeben, gefolgt von beliebigen Eingabeargument-Kombinationen aus den vorherigen Syntaxen.

Beispiele

alle reduzieren

Generieren Sie eine 5x5-Matrix aus einheitlich verteilten Zufallszahlen zwischen 0 und 1.

r = rand(5)
r = 5×5

    0.8147    0.0975    0.1576    0.1419    0.6557
    0.9058    0.2785    0.9706    0.4218    0.0357
    0.1270    0.5469    0.9572    0.9157    0.8491
    0.9134    0.9575    0.4854    0.7922    0.9340
    0.6324    0.9649    0.8003    0.9595    0.6787

Generieren Sie einen 10x1-Spaltenvektor aus einheitlich verteilten Zahlen im Intervall (-5,5). Mit der Formel r = a + (b-a).*rand(n,1) können Sie n Zufallszahlen im Intervall (a,b) generieren.

a = -5;
b = 5;
n = 10;
r = a + (b-a).*rand(n,1)
r = 10×1

    3.1472
    4.0579
   -3.7301
    4.1338
    1.3236
   -4.0246
   -2.2150
    0.4688
    4.5751
    4.6489

Verwenden Sie die randi-Funktion (statt rand), um 5 zufällige Ganzzahlen aus der einheitlichen Verteilung zwischen 10 und 50 zu generieren.

r = randi([10 50],1,5)
r = 1×5

    43    47    15    47    35

Speichern Sie den aktuellen Zustand des Zufallszahlengenerators und erstellen Sie einen 1x5-Vektor aus Zufallszahlen.

s = rng;
r = rand(1,5)
r = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

Setzen Sie den Zustand des Zufallszahlengenerators auf s zurück und erstellen Sie einen neuen 1x5-Vektor aus Zufallszahlen. Die Werte sind identisch zu den vorherigen Werten.

rng(s);
r1 = rand(1,5)
r1 = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

Erstellen Sie ein 3x2x3-Array aus Zufallszahlen.

X = rand([3,2,3])
X = 
X(:,:,1) =

    0.8147    0.9134
    0.9058    0.6324
    0.1270    0.0975


X(:,:,2) =

    0.2785    0.9649
    0.5469    0.1576
    0.9575    0.9706


X(:,:,3) =

    0.9572    0.1419
    0.4854    0.4218
    0.8003    0.9157

Erstellen Sie einen 1x4-Vektor aus Zufallszahlen, deren Elemente einfache Genauigkeit aufweisen.

r = rand(1,4,"single")
r = 1×4 single row vector

    0.8147    0.9058    0.1270    0.9134

class(r)
ans = 
'single'

Erstellen Sie eine Matrix aus einheitlich verteilten Zufallszahlen mit derselben Größe wie ein bestehendes Array.

A = [3 2; -2 1];
sz = size(A);
X = rand(sz)
X = 2×2

    0.8147    0.1270
    0.9058    0.9134

Es ist ein gängiges Muster, die beiden vorherigen Codezeilen zu einer einzigen Zeile zu kombinieren:

X = rand(size(A));

Erstellen Sie eine 2x2-Matrix aus Zufallszahlen mit einfacher Genauigkeit.

p = single([3 2; -2 1]);

Erstellen Sie ein Array aus Zufallszahlen mit derselben Größe und demselben Datentyp wie p.

X = rand(size(p),like=p)
X = 2×2 single matrix

    0.8147    0.1270
    0.9058    0.9134

class(X)
ans = 
'single'

Generieren Sie 10 zufällige komplexe Zahlen aus der einheitlichen Verteilung über einen quadratischen Bereich mit reellen und imaginären Teilen im Intervall (0;1).

a = rand(10,1,like=1i)
a = 10×1 complex

   0.8147 + 0.9058i
   0.1270 + 0.9134i
   0.6324 + 0.0975i
   0.2785 + 0.5469i
   0.9575 + 0.9649i
   0.1576 + 0.9706i
   0.9572 + 0.4854i
   0.8003 + 0.1419i
   0.4218 + 0.9157i
   0.7922 + 0.9595i

Eingabeargumente

alle reduzieren

Größe der quadratischen Matrix, angegeben als ganzzahliger Wert.

  • Wenn n 0 ist, dann ist X eine leere Matrix.

  • Wenn n negativ ist, wird der Wert wie 0 behandelt.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Größe der jeweiligen Dimension, angegeben als separate Argumente ganzzahliger Werte.

  • Wenn die Größe einer beliebigen Dimension 0 ist, dann ist X ein leeres Array.

  • Wenn die Größe einer beliebigen Dimension negativ ist, wird der Wert wie 0 behandelt.

  • Jenseits der zweiten Dimension ignoriert rand nachgeordnete Dimensionen mit einer Größe von 1. Beispielsweise generiert rand(3,1,1,1) einen 3x1-Vektor aus Zufallszahlen.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Größe der jeweiligen Dimension, angegeben als Zeilenvektor ganzzahliger Werte. Jedes Element dieses Vektors gibt die Größe der entsprechenden Dimension an:

  • Wenn die Größe einer beliebigen Dimension 0 ist, dann ist X ein leeres Array.

  • Wenn die Größe einer beliebigen Dimension negativ ist, wird der Wert wie 0 behandelt.

  • Jenseits der zweiten Dimension ignoriert rand nachgeordnete Dimensionen mit einer Größe von 1. Beispielsweise generiert rand([3 1 1 1]) einen 3x1-Vektor aus Zufallszahlen.

Beispiel: sz = [2 3 4] erstellt ein 2x3x4-Array.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Zu erstellender Datentyp (Klasse), angegeben als "double", "single" oder als Name einer anderen Klasse, die Unterstützung für rand bereitstellt.

Beispiel: rand(5,"single")

Prototyp eines zu erstellenden Arrays, angegeben als numerisches Array.

Beispiel: rand(5,like=p)

Datentypen: single | double
Unterstützung komplexer Zahlen: Ja

Zufallszahlen-Stream, angegeben als RandStream-Objekt.

Beispiel: s = RandStream("dsfmt19937"); rand(s,[3 1])

Ausgabeargumente

alle reduzieren

Ausgabearray, zurückgegeben als Skalar, Vektor, Matrix oder mehrdimensionales Array.

Mehr über

alle reduzieren

Tipps

  • Die von rand erzeugte Zahlensequenz wird durch die internen Einstellungen des einheitlichen Pseudozufallszahlengenerators festgelegt, der die Grundlage von rand, randi und randn bildet. Sie können diesen gemeinsamen Zufallszahlengenerator mithilfe von rng steuern.

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt vor R2006a

alle erweitern