MATLAB Repmat

Ammar Ali 13 juin 2022
MATLAB Repmat

Ce tutoriel discutera de la création d’une matrice avec les valeurs répétées d’un tableau à l’aide de la fonction repmat() dans MATLAB.

Fonction MATLAB repmat()

La fonction repmat() crée de grandes matrices à partir d’un petit tableau. La fonction répète les valeurs données du tableau pour créer la grande matrice.

La fonction repmat() a trois syntaxes de base. La première syntaxe est donnée ci-dessous.

M = repmat(A,n);

La syntaxe ci-dessus renvoie un tableau contenant les n copies de A dans les dimensions des lignes et des colonnes. Lorsque A est une matrice, la matrice de sortie M sera égale à la taille de la matrice A multipliée par n, supérieure à la taille de A.

Le premier argument de la fonction repmat() est le tableau d’entrée qui peut être un scalaire, une matrice, un vecteur ou un tableau multidimensionnel. Le deuxième argument définira le nombre de fois que le tableau d’entrée sera répété sur les dimensions de ligne et de colonne.

La seconde syntaxe de la fonction repmat() est ci-dessous.

M = repmat(A,r1,...,rN);

La syntaxe ci-dessus renvoie une liste de scalaires qui décrivent l’arrangement des copies de A dans chaque dimension. Lorsque A est une matrice à N dimensions, la taille de M est supérieure à celle de A.

Le r1 définira le nombre de fois que le tableau d’entrée sera répété sur la première dimension. La troisième syntaxe de la fonction repmat() est donnée ci-dessous.

M = repmat(A,r);

La syntaxe ci-dessus renvoie un tableau contenant des copies de A dans les dimensions des lignes et des colonnes selon le schéma de répétition avec le vecteur de ligne r.

Par exemple, nous pouvons définir le nombre de fois que le tableau ou la matrice donné se répétera dans la dimension de ligne et de colonne à l’aide du vecteur r, qui contiendra le nombre de fois que le tableau ou la matrice d’entrée sera répété pour créer la sortie. matrice.

On peut utiliser la fonction repmat() pour créer une matrice en répétant une seule valeur. Par exemple, créons une matrice 2 par 2 contenant la valeur 5.

Voir le code ci-dessous.

clc
clear

M = repmat(5,2,2)

Production:

M =

     5     5
     5     5

Les commandes clc et clear sont utilisées pour effacer la commande et la fenêtre de l’espace de travail dans le code ci-dessus. La sortie est une matrice 2 par 2 contenant uniquement le nombre 5.

On peut aussi utiliser la fonction repmat() pour créer une matrice à partir de la répétition d’une autre matrice. Par exemple, créons une matrice diagonale en utilisant la fonction diag() puis créons une matrice en répétant la matrice diagonale.

Voir le code ci-dessous.

clc
clear

D = diag([5 15 25])
M = repmat(D,2,3)

Production:

D =

     5     0     0
     0    15     0
     0     0    25


M =

     5     0     0     5     0     0     5     0     0
     0    15     0     0    15     0     0    15     0
     0     0    25     0     0    25     0     0    25
     5     0     0     5     0     0     5     0     0
     0    15     0     0    15     0     0    15     0
     0     0    25     0     0    25     0     0    25

Dans le code ci-dessus, nous avons répété la matrice diagonale 2 fois dans la dimension ligne et 3 fois dans la dimension colonne.

La taille de la matrice de sortie deviendra 6 par 9 car l’entrée a trois lignes, et nous l’avons répétée 2 fois pour que la taille de la ligne de sortie devienne 6, et la matrice d’entrée a trois colonnes, et nous les avons répétées 3 fois de sorte que la taille de la colonne de sortie devienne 9.

On peut aussi faire des matrices 3D avec la fonction repmat(). Nous devons utiliser trois valeurs dans le schéma de répétition.

Par exemple, créons une matrice 6-par-3-par-2 en utilisant la fonction repmat(). Voir le code ci-dessous.

clc
clear

D = diag([5 15 25])
M = repmat(D,2,1,2)

Production:

D =

     5     0     0
     0    15     0
     0     0    25


M(:,:,1) =

     5     0     0
     0    15     0
     0     0    25
     5     0     0
     0    15     0
     0     0    25


M(:,:,2) =

     5     0     0
     0    15     0
     0     0    25
     5     0     0
     0    15     0
     0     0    25

Comme nous pouvons le voir, la matrice de sortie est une matrice tridimensionnelle. Nous pouvons également créer une matrice avec une pile horizontale ou verticale de vecteurs lignes.

Par exemple, si nous ne voulons pas répéter le vecteur sur une dimension, nous pouvons passer 1 à sa place. A l’intérieur de la fonction repmat(), le deuxième argument définit le schéma de répétition pour la première dimension ou la dimension de ligne.

Le troisième argument définit le schéma de répétition pour la seconde ou la dimension de colonne.

Par exemple, créons une matrice avec une pile horizontale d’un vecteur ligne. Voir le code ci-dessous.

clc
clear

D = (1:5)'
M = repmat(D,1,5)

Production:

D =

     1
     2
     3
     4
     5


M =

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

Dans le code ci-dessus, nous avons pris la transposition du vecteur donné pour le convertir en un vecteur colonne pour créer la pile horizontale, mais dans le cas de la pile verticale, nous n’avons pas à prendre la transposition du vecteur donné.

On peut aussi utiliser la fonction repmat() pour créer une grande table à partir d’une petite table. Par exemple, créons une table en utilisant la fonction table() et créons une autre grande table à partir de la première table.

Voir le code ci-dessous.

clc
clear

T_1 = table([19; 16],[60; 53],'VariableNames',{'Age' 'Height'})
T_2 = repmat(T_1, 2,2)

Production:

T_1 =

  2×2 table

    Age    Height
    ___    ______

    19       60
    16       53


T_2 =

  4×4 table

    Age    Height    Age_1    Height_1
    ___    ______    _____    ________

    19       60       19         60
    16       53       16         53
    19       60       19         60
    16       53       16         53

Dans le code ci-dessus, nous avons répété la dimension de ligne et de colonne 2 fois pour créer le tableau plus grand.

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 Matrix