Main Content

rand

Nombres aléatoires uniformément distribués

Description

X = rand renvoie un scalaire aléatoire tiré de la distribution uniforme dans l’intervalle (0,1).

exemple

X = rand(n) renvoie une matrice de nombres aléatoires uniformément distribués de dimension n x n.

exemple

X = rand(sz1,...,szN) renvoie un tableau de nombres aléatoires de dimension sz1 x ... x szNsz1,...,szN indiquent la taille de chaque dimension. Par exemple, rand(3,4) renvoie une matrice 3 x 4.

exemple

X = rand(sz) renvoie un tableau de nombres aléatoires où le vecteur de taille sz définit size(X). Par exemple, rand([3 4]) renvoie une matrice 3 x 4.

exemple

X = rand(___,typename) renvoie un tableau de nombres aléatoires dont le type de données est typename. L’entrée typename peut être soit "single" soit "double". Vous pouvez utiliser n’importe quel argument en entrée dans les syntaxes précédentes.

exemple

X = rand(___,"like",p) renvoie un tableau de nombres aléatoires tels que p, c’est-à-dire du même type de données et de la même complexité (réelle ou complexe) que p. Vous pouvez spécifier typename ou "like", mais pas les deux.

X = rand(s,___) génère des nombres à partir d’une série de nombres aléatoires s au lieu de la série globale par défaut. Pour créer une série, utilisez RandStream. Vous pouvez spécifier s suivi de n’importe quelle combinaison d’arguments en entrée dans les syntaxes précédentes.

Exemples

réduire tout

Générez une matrice 5 x 5 de nombres aléatoires uniformément distribués entre 0 et 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

Générez un vecteur colonne de nombres uniformément distribués de dimension 10 x 1 dans l’intervalle (-5,5).

r = -5 + (5+5)*rand(10,1)
r = 10×1

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

En général, vous pouvez générer N nombres aléatoires dans l’intervalle (a,b) avec la formule r = a + (b-a).*rand(N,1).

Utilisez la fonction randi (au lieu de rand) pour générer 5 nombres entiers aléatoires à partir de la distribution uniforme entre 10 et 50.

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

    43    47    15    47    35

Sauvegardez l’état actuel du générateur de nombres aléatoires et créez un vecteur de nombres aléatoires de dimension 1 x 5.

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

    0.8147    0.9058    0.1270    0.9134    0.6324

Restaurez l’état du générateur de nombres aléatoires sur s, puis créez un nouveau vecteur de nombres aléatoires de dimension 1 x 5. Les valeurs sont les mêmes qu’avant.

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

    0.8147    0.9058    0.1270    0.9134    0.6324

Créez un tableau de nombres aléatoires de dimension 3 x 2 x 3.

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

Créez un vecteur de nombres aléatoires de dimension 1 x 4 dont les éléments sont de simple précision.

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

    0.8147    0.9058    0.1270    0.9134

class(r)
ans = 
'single'

Créez une matrice de nombres aléatoires uniformément distribués de la même taille qu’un tableau existant.

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

    0.8147    0.1270
    0.9058    0.9134

Il est courant de combiner les deux lignes de code précédentes en une seule :

X = rand(size(A));

Créez une matrice 2 x 2 avec des nombres aléatoires simple précision.

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

Créez un tableau de nombres aléatoires de la même taille et du même type de données que p.

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

    0.8147    0.1270
    0.9058    0.9134

class(X)
ans = 
'single'

Générez 10 nombres complexes aléatoires à partir de la distribution uniforme sur un domaine carré avec des parties réelles et imaginaires dans l’intervalle (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

Arguments d'entrée

réduire tout

Taille de la matrice carrée, spécifiée sous forme d’une valeur entière.

  • Si n est égal à 0, alors X est une matrice vide.

  • Si n est négatif, il est traité comme 0.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Taille de chaque dimension, spécifiée sous forme d’arguments distincts de valeurs entières.

  • Si la taille d’une dimension est égale à 0, alors X est un tableau vide.

  • Si la taille d’une dimension est négative, elle est traitée comme une taille égale à 0.

  • Au-delà de la deuxième dimension, rand ignore les dimensions suivantes de taille 1. Par exemple, rand(3,1,1,1) produit un vecteur de nombres aléatoires de dimension 3 x 1.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Taille de chaque dimension, spécifiée sous forme d’un vecteur ligne de valeurs entières. Chaque élément de ce vecteur indique la taille de la dimension correspondante :

  • Si la taille d’une dimension est égale à 0, alors X est un tableau vide.

  • Si la taille d’une dimension est négative, elle est traitée comme une taille égale à 0.

  • Au-delà de la deuxième dimension, rand ignore les dimensions suivantes de taille 1. Par exemple, rand([3 1 1 1]) produit un vecteur de nombres aléatoires de dimension 3 x 1.

Exemple : sz = [2 3 4] crée un tableau de dimension 2 x 3 x 4.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Type de données (classe) à créer, spécifié comme "double", "single" ou le nom d’une autre classe supportant rand.

Exemple : rand(5,"single")

Prototype du tableau à créer, spécifié sous forme de tableau numérique.

Exemple : rand(5,"like",p)

Types de données : single | double
Support des nombres complexes : Oui

Série de nombres aléatoires, spécifiée sous forme d’un objet RandStream.

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

Conseils

  • La séquence de nombres produite par rand est déterminée par les paramètres internes du générateur de nombres pseudo-aléatoires uniforme qui sous-tend rand, randi et randn. Vous pouvez contrôler ce générateur de nombres aléatoires partagé à l’aide de rng.

Capacités étendues

Historique des versions

Introduit avant R2006a

développer tout