MATLAB Créer une matrice aléatoire

Ammar Ali 30 janvier 2023
  1. Générer des nombres aléatoires à l’aide de la fonction rand() dans MATLAB
  2. Générer des nombres aléatoires à l’aide de la fonction randi() dans MATLAB
  3. Générer des nombres aléatoires à l’aide de la fonction randn() dans MATLAB
  4. Générer des nombres aléatoires à l’aide de la fonction randperm() dans MATLAB
  5. Générer des nombres aléatoires à l’aide de la fonction betarnd() dans MATLAB
  6. Générer des nombres aléatoires à l’aide de la fonction random() dans MATLAB
MATLAB Créer une matrice aléatoire

Ce tutoriel expliquera comment générer ou créer des nombres aléatoires à l’aide des fonctions rand(), randi(), randn(), randperm(), betarand() et random() dans MATLAB.

Générer des nombres aléatoires à l’aide de la fonction rand() dans MATLAB

Si vous souhaitez générer des nombres aléatoires uniformément distribués, vous pouvez utiliser la fonction rand() dans MATLAB, qui génère des nombres aléatoires entre 0 et 1. Vous pouvez également spécifier la taille de la matrice contenant des valeurs aléatoires, et chaque valeur sera entre 0 et 1, que vous pouvez redimensionner selon vos besoins en les multipliant avec un scaler. Par exemple, générons une matrice 2 par 2 de valeurs aléatoires à l’aide de la fonction rand(). Voir le code ci-dessous.

rn = rand(2)

Production:

rn =

    0.2259    0.2277
    0.1707    0.4357

Comme vous pouvez le voir dans la sortie, une matrice 2 par 2 contenant des valeurs aléatoires entre 0 et 1 est générée. Si vous souhaitez spécifier la plage des nombres aléatoires, vous devez utiliser la formule ci-dessous.

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

Dans cette formule, a est la limite inférieure, b est la limite supérieure et n est la longueur des nombres aléatoires. Par exemple, générons dix nombres aléatoires compris entre 2 et 8. Voir le code ci-dessous.

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

Production:

rn =

    7.5403
    4.5812
    3.1089
    7.4293
    7.8785
    4.6332
    2.6667
    3.5484
    4.4523
    5.5694

Il y a dix nombres aléatoires dans la plage de 2 à 8. Si vous ne voulez que des entiers dans la sortie, vous pouvez convertir ces nombres aléatoires en entiers à l’aide de la fonction round(), qui arrondit un nombre à virgule flottante à l’entier le plus proche . Vous pouvez également cloner la taille et le type de données des nombres aléatoires à partir d’un tableau existant en utilisant la fonction size() pour la taille et la propriété like pour le type de données. Par exemple, créons un tableau et générons des valeurs aléatoires en fonction de la taille et du type de données de ce tableau. Voir le code ci-dessous.

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

Production:

v =

     2     3     1     5


rn =

    0.4886    0.5785    0.2373    0.4588

La taille et le type de données du tableau et les nombres aléatoires sont les mêmes. Consultez ce lien pour plus de détails sur la fonction rand().

Générer des nombres aléatoires à l’aide de la fonction randi() dans MATLAB

La fonction ci-dessus génère des nombres aléatoires à virgule flottante, mais si vous souhaitez générer des nombres entiers aléatoires, vous pouvez utiliser la fonction randi() dans MATLAB, qui génère des nombres entiers aléatoires de 1 à un entier spécifié que vous pouvez spécifier comme un premier argument de la fonction randi(). Vous pouvez également spécifier la taille de la matrice de sortie contenant des valeurs aléatoires comme deuxième et troisième argument. Par exemple, générons une matrice 3 par 3 contenant des nombres entiers aléatoires de 1 à 15. Voir le code ci-dessous.

rn = randi(15,3,3)

Production:

rn =

     6     1     8
    11    12    14
     3     8    10

La matrice est de taille 3 par 3 qui contient des nombres entiers aléatoires compris entre 1 et 15. Vous pouvez également générer des nombres entiers aléatoires entre une plage spécifique, et il vous suffit de passer la plage entre crochets comme premier argument du fonction randi(). Par exemple, générons 10 nombres aléatoires entre -10 et 10. Voir le code ci-dessous.

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

Production:

rn =

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

Il existe dix nombres aléatoires compris entre -10 et 10. Vous pouvez également définir le type de données des nombres entiers en passant le nom du type de données dans la fonction randi(). Les types de données que vous pouvez choisir sont : 'single', 'double', 'int8', 'uint8', 'int16', 'uint16', 'int32' , ou 'uint32'. Vous pouvez définir la taille des nombres aléatoires à partir de la taille du tableau existant à l’aide de la fonction size() et le type de données numérique à l’aide de la propriété like. Par exemple, générons une matrice de valeurs aléatoires en fonction de la taille et du type de données numérique d’un tableau existant. Voir le code ci-dessous.

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

Production:

v =

     1     2
     6     7


rn =

     6     1
     7     7

La taille et le type de données du tableau et les nombres aléatoires sont les mêmes. Consultez ce lien pour plus de détails sur la fonction randi().

Générer des nombres aléatoires à l’aide de la fonction randn() dans MATLAB

Si vous souhaitez générer des nombres aléatoires normalement distribués, vous pouvez utiliser la fonction randn() dans MATLAB. La fonction randn() est la même que la fonction rand() avec seulement la différence de type de distribution. La fonction rand() génère des nombres aléatoires uniformément distribués tandis que la fonction randn() génère des nombres aléatoires normalement distribués. Vous pouvez utiliser n’importe laquelle de ces fonctions selon vos besoins. Consultez ce lien pour plus de détails sur la fonction randn().

Générer des nombres aléatoires à l’aide de la fonction randperm() dans MATLAB

Si vous souhaitez générer une permutation aléatoire d’entiers, vous pouvez utiliser la fonction randperm() dans MATLAB. La permutation aléatoire des entiers sera comprise entre 1 et un nombre spécifique que vous pouvez définir dans la fonction randperm() comme premier argument. Vous pouvez également définir le nombre d’entiers que vous souhaitez générer comme deuxième argument de la fonction. Par exemple, générons une permutation aléatoire de 6 entiers uniques. Voir le code ci-dessous.

rn = randperm(10,5)

Production:

rn =

     2     3    10     8     7

Tous les entiers sont uniques et vont de 1 à 10. Notez que la fonction randperm() est la même que la fonction randi() avec une différence que le randperm() génère des entiers uniques, alors que dans le fonction randi(), les entiers peuvent être répétés. Consultez ce lien pour plus de détails sur la fonction randperm.

Générer des nombres aléatoires à l’aide de la fonction betarnd() dans MATLAB

Si vous souhaitez générer des nombres aléatoires à partir de la distribution bêta, vous pouvez utiliser la fonction betarnd() dans MATLAB. Cette fonction génère des entiers aléatoires spécifiés par le premier et le deuxième argument : vecteurs, matrices ou tableaux de même taille. Par exemple, générons une matrice 1 par 5 de nombres aléatoires à partir de la distribution bêta en utilisant deux vecteurs en entrée. Voir le code ci-dessous.

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

Production:

rn =

    0.1234    0.1847    0.3334    0.2689    0.3678

Vous pouvez également spécifier la taille de la matrice de sortie en la définissant dans les troisième et quatrième arguments de la fonction betarnd(). Consultez ce lien pour plus de détails sur la fonction betarnd().

Générer des nombres aléatoires à l’aide de la fonction random() dans MATLAB

Si vous souhaitez générer des nombres aléatoires à partir d’un type de distribution spécifié, vous pouvez utiliser la fonction random() dans MATLAB. Vous devez définir le nom de la distribution comme premier argument, puis après cela, vous devez passer les paramètres de distribution. Par exemple, générons des nombres aléatoires normalement distribués en utilisant une valeur sigma de 0 et une valeur mu de 1 en utilisant la fonction random(). Voir le code ci-dessous.

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

Production:

rn =

   -0.1649

Vous pouvez définir votre nom de distribution requis dans la fonction. Vous pouvez utiliser de nombreux types de distributions comme : Beta, Binomial, Exponential, Gamma, et bien d’autres. Consultez ce lien pour plus de détails sur la fonction random.

Auteur: 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

Article connexe - MATLAB Random

Article connexe - MATLAB Matrix