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.