Hauptinhalt

randi

Gleichmäßig verteilte zufällige Ganzzahlen

Beschreibung

X = randi(imax) gibt eine zufällige Skalar-Ganzzahl zwischen 1 und imax zurück.

X = randi(imax,n) gibt eine nxn-Matrix aus zufälligen Ganzzahlen zurück, die aus der diskreten einheitlichen Verteilung des Intervalls [1,imax] entnommen werden.

Beispiel

X = randi(imax,sz1,...,szN) gibt ein sz1x...xszN-Array zurück, bei dem sz1,...,szN die Größe der jeweiligen Dimension angibt. randi(10,3,4) gibt beispielsweise ein 3x4-Array aus zufälligen Ganzzahlen zwischen 1 und 10 zurück.

X = randi(imax,sz) gibt ein Array zurück, wobei der Größenvektor sz size(X) definiert. randi(10,[3 4]) gibt beispielsweise ein 3x4-Array aus zufälligen Ganzzahlen zwischen 1 und 10 zurück.

Beispiel

X = randi(___,typename) gibt ein Array aus zufälligen Ganzzahlen zwischen 1 und imax mit dem Datentyp typename zurück. Die Eingabe typename kann "single", "double", "int8", "uint8", "int16", "uint16", "int32", "uint32" oder "logical" sein. Sie können ein beliebiges der Eingabeargumente aus den vorherigen Syntaxen verwenden.

Beispiel

X = randi(___,like=p) gibt ein Array aus zufälligen Ganzzahlen 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 = randi([imin,imax],___) gibt ein Array mit Ganzzahlen zurück, die aus der diskreten einheitlichen Verteilung des Intervalls [imin,imax] mithilfe einer der obenstehenden Syntaxen entnommen werden.

Beispiel

X = randi(s,___) generiert Ganzzahlen 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 zufälligen Ganzzahlen zwischen 1 und 10. Die erste Eingabe von randi gibt die größte Ganzzahl im Stichprobenintervall an (die kleinste Ganzzahl im Intervall ist 1).

r = randi(10,5)
r = 5×5

     9     1     2     2     7
    10     3    10     5     1
     2     6    10    10     9
    10    10     5     8    10
     7    10     9    10     7

Generieren Sie einen 10x1-Spaltenvektor einheitlich verteilter zufälliger Ganzzahlen aus dem Stichprobenintervall [-5,5].

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

     3
     4
    -4
     5
     1
    -4
    -2
     1
     5
     5

Speichern Sie den aktuellen Zustand des Zufallszahlengenerators und erstellen Sie einen 1x5-Vektor aus zufälligen Ganzzahlen.

s = rng;
r = randi(10,1,5)
r = 1×5

     9    10     2    10     7

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

rng(s);
r1 = randi(10,1,5)
r1 = 1×5

     9    10     2    10     7

Erstellen Sie ein 3x2x3-Array einheitlich verteilter zufälliger Ganzzahlen zwischen 1 und 500.

X = randi(500,[3,2,3])
X = 
X(:,:,1) =

   408   457
   453   317
    64    49


X(:,:,2) =

   140   483
   274    79
   479   486


X(:,:,3) =

   479    71
   243   211
   401   458

Erstellen Sie einen 1x4-Vektor aus Zufallszahlen zwischen 1 und 100, deren Elemente den Typ int16 aufweisen.

r = randi(100,1,4,"int16")
r = 1×4 int16 row vector

   82   91   13   92

class(r)
ans = 
'int16'

Erstellen Sie eine Matrix aus einheitlich verteilten zufälligen Ganzzahlen zwischen 1 und 10 mit derselben Größe wie ein bestehendes Array.

A = [3 2; -2 1];
sz = size(A);
X = randi(10,sz)
X = 2×2

     9     2
    10    10

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

X = randi(10,size(A));

Erstellen Sie eine 2x2-Matrix aus vorzeichenbehafteten 8-Bit-Ganzzahlen.

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

Erstellen Sie ein Array aus zufälligen Ganzzahlen mit derselben Größe und demselben Datentyp wie p.

X = randi(10,size(p),like=p)
X = 2×2 int8 matrix

    9    2
   10   10

class(X)
ans = 
'int8'

Seit R2022a

Generieren Sie 10 zufällige komplexe Ganzzahlen aus der diskreten einheitlichen Verteilung über einen quadratischen Bereich mit reellen und imaginären Teilen im Intervall [-5,5].

a = randi([-5,5],10,1,like=1i)
a = 10×1 complex

   3.0000 + 4.0000i
  -4.0000 + 5.0000i
   1.0000 - 4.0000i
  -2.0000 + 1.0000i
   5.0000 + 5.0000i
  -4.0000 + 5.0000i
   5.0000 + 0.0000i
   3.0000 - 4.0000i
  -1.0000 + 5.0000i
   3.0000 + 5.0000i

Seit R2023a

Erstellen Sie eine 5x5-Matrix aus zufälligen logischen Werten (0 und 1) mit diskreter einheitlicher Verteilung.

r = randi([0 1],5,"logical")
r = 5×5 logical array

   1   0   0   0   1
   1   0   1   0   0
   0   1   1   1   1
   1   1   0   1   1
   1   1   1   1   1

Eingabeargumente

alle reduzieren

Größte Ganzzahl im Stichprobenintervall, angegeben als positive Ganzzahl. randi entnimmt Werte aus der einheitlichen Verteilung im Probenintervall [1,imax].

Beispiel: randi(10,5)

Kleinste Ganzzahl im Stichprobenintervall, angegeben als Skalar-Ganzzahl.

Sowohl imin als auch imax müssen Ganzzahlen sein, die iminimax entsprechen.

randi([50,100],5) gibt beispielsweise eine 5x5-Matrix zufälliger Ganzzahlen zwischen (einschließlich) 50 und 100 zurück.

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 randi nachgeordnete Dimensionen mit einer Größe von 1. randi([5,10],3,1,1,1) generiert beispielsweise einen 3x1-Vektor aus zufälligen Ganzzahlen zwischen 5 und 10.

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 randi nachgeordnete Dimensionen mit einer Größe von 1. randi([5,10],[3 1 1 1]) generiert beispielsweise einen 3x1-Vektor aus zufälligen Ganzzahlen zwischen 5 und 10.

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

Zu erstellender Datentyp (Klasse), angegeben als "double", "single", "int8", "uint8", "int16", "uint16", "int32", "uint32", "logical" oder als Name einer anderen Klasse, die randi unterstützt.

Beispiel: randi(5,5,"int8")

Prototyp eines zu erstellenden Arrays, angegeben als numerisches oder logisches Array.

Beispiel: randi(5,5,like=p)

Datentypen: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
Unterstützung komplexer Zahlen: Ja

Zufallszahlen-Stream, angegeben als RandStream-Objekt.

Beispiel: s = RandStream("dsfmt19937"); randi(s,[5,10],[3 1])

Ausgabeargumente

alle reduzieren

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

Mehr über

alle reduzieren

Tipps

  • Die von randi 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.

  • Die von randi zurückgegebenen Arrays können wiederholte Ganzzahlenwerte enthalten. Dieses Verhalten wird auch als Abtastung mit Ersatz bezeichnet. Verwenden Sie randperm, wenn eindeutige Werte benötigt werden.

  • Wenn imin und imax außerhalb des Bereichs des Ausgabetyps liegen (wie von typename oder dem Prototypen p angegeben), erstellt randi zunächst zufällige Ganzzahlen im Intervall [imin,imax] und wandelt die resultierenden Ganzzahlen außerhalb des Bereichs in die Mindest- oder Höchstwerte des Ausgabetyps um. Beispiel:

    rng default;
    r = randi([-10 10],1,10)
    r =
    
         7     9    -8     9     3    -8    -5     1    10    10
    rng default;
    r = randi([-10 10],1,10,"logical")
    r =
    
      1×10 logical array
    
       1   1   0   1   1   0   0   1   1   1

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt in R2008b

alle erweitern