Ajouter un vecteur à une matrice 3D dans MATLAB

Ammar Ali 15 février 2024
Ajouter un vecteur à une matrice 3D dans MATLAB

Ce tutoriel discutera de l’ajout d’un vecteur à une matrice 3D à l’aide de la fonction cat() dans MATLAB.

Ajouter un vecteur à une matrice 3D dans MATLAB

Une matrice ou un tableau 3D est différent d’une matrice ou d’un tableau 2D. Dans une matrice ou un tableau 2D, nous avons deux dimensions dans lesquelles la première dimension s’appelle la ligne et la deuxième dimension s’appelle la colonne.

Dans une matrice ou un tableau 3D, nous avons 3 dimensions dans lesquelles les deux premières dimensions sont les mêmes que la matrice ou le tableau 2D, et la troisième dimension est appelée pages ou feuilles. Une matrice ou un tableau 3D simple est illustré ci-dessous.

matrice 3d

Dans une matrice ou un tableau 2D, chaque élément est placé à un emplacement spécifique ou à un numéro de ligne et de colonne, et nous pouvons obtenir et remplacer un élément en utilisant son emplacement. Dans une matrice ou un tableau 3D, chaque élément est placé à un emplacement, une ligne, une colonne et un numéro de page spécifiques, et nous pouvons obtenir et remplacer un élément en utilisant son emplacement.

Par exemple, le premier élément d’une matrice ou d’un tableau 3D sera placé à l’emplacement (1,1,1), également indiqué dans le diagramme ci-dessus. Si nous voulons ajouter un vecteur à la fin d’une matrice 3D, la taille du vecteur doit être la même que la taille de chaque page ou 3ème dimension présente dans la matrice 3D.

Par exemple, créons une matrice ou un tableau 3D avec 1 ligne, 2 colonnes et 2 pages. Voir le code ci-dessous.

clc
clear

MyMatrix   = ones(1,2,2)

Production:

MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1

MATLAB affiche un tableau ou une matrice 3D par rapport à la troisième dimension. Dans l’exemple ci-dessus, nous avons une matrice 3D avec 2 pages, et chaque page aura une matrice 2D de 1 ligne et 2 colonnes affichées dans la sortie.

Si nous voulons obtenir un élément de la matrice 3D, nous devons donner son emplacement comme la ligne, la colonne et le numéro de page. Si nous voulons ajouter ou ajouter un autre vecteur à la fin de la matrice ou du tableau 3D ci-dessus, nous pouvons utiliser la fonction cat(), qui concatène deux matrices selon la dimension donnée.

La fonction cat() a trois arguments d’entrée dans lesquels le premier argument est le numéro de dimension, le deuxième argument est la matrice 3D et le troisième argument est le vecteur ou la matrice que nous voulons ajouter à la matrice 3D. Dans notre cas, nous voulons ajouter le vecteur à la fin de la matrice 3D, ce qui signifie que nous voulons ajouter le vecteur après la dernière page.

La fonction cat() créera une autre page dans la matrice 3D pour stocker le vecteur donné.

Par exemple, créons et ajoutons un vecteur à la fin de la matrice ou du tableau 3D ci-dessus en utilisant la fonction cat(). Voir le code ci-dessous.

MyVector = [5 6];
MyMatrix   = ones(1,2,2)
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, MyVector)

Production:

MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1


s =

    "After Adding Another Vector"


MyMatrix(:,:,1) =

     1     1


MyMatrix(:,:,2) =

     1     1


MyMatrix(:,:,3) =

     5     6

Comme nous pouvons le voir dans la sortie ci-dessus, la matrice 3D a 3 pages après la concaténation, et la dernière page contient le vecteur d’entrée. Pour une concaténation réussie, la taille de la dimension que nous avons passée à l’intérieur de la fonction cat() et la taille du vecteur doivent être identiques.

Dans l’exemple ci-dessus, nous n’avons qu’une seule ligne sur chaque page, nous n’avons donc rencontré aucune erreur. Si nous avons une matrice 3D avec plus d’une ligne, la taille de la troisième dimension ou page sera différente de la taille du vecteur donné.

Pour résoudre ce problème, nous pouvons créer un vecteur de zéros à l’aide de la fonction zeros(), qui aura la même taille que la troisième dimension ou page, puis nous pourrons remplacer le premier tableau de la matrice de zéros par le vecteur donné . Maintenant, le vecteur donné deviendra une matrice avec des zéros supplémentaires, que nous pouvons facilement ajouter ou ajouter à la fin de la matrice 3D.

Par exemple, créons une matrice 3D avec 2 lignes, 2 colonnes et 2 pages, puis ajoutons le vecteur donné en utilisant la méthode mentionnée ci-dessus. Voir le code ci-dessous.

clc
clear

MyVector = [5 6];
MyMatrix   = ones(2,2,2)
NewVector = zeros(2,2)
NewVector(1,:) = MyVector
s = "After Adding Another Vector"
MyMatrix = cat(3, MyMatrix, NewVector)

Production:

MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


NewVector =

     0     0
     0     0


NewVector =

     5     6
     0     0


s =

    "After Adding Another Vector"


MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


MyMatrix(:,:,3) =

     5     6
     0     0

Nous pouvons voir dans la sortie ci-dessus que le vecteur est ajouté à la matrice 3D, mais nous avons également dû ajouter des zéros pour rendre la taille égale. Si nous voulons ajouter un vecteur colonne, nous devons suivre la même méthode décrite ci-dessus.

Si la matrice 3D n’a qu’une seule colonne sur chaque page et que sa taille est égale à la taille du vecteur colonne d’entrée, nous pouvons facilement les ajouter en utilisant la fonction cat(). Si la matrice 3D a plus d’une colonne ou si la taille est différente, nous devons rendre la taille égale en ajoutant des zéros le long du vecteur de colonne donné, puis nous pouvons l’ajouter à la matrice 3D en utilisant la même méthode que nous avons utilisée dans le cas d’ajouter un vecteur ligne.

Nous pouvons également remplacer les lignes, les colonnes ou une page entière d’une matrice 3D. Par exemple, créons une matrice 3D à l’aide de la fonction ones() et remplaçons la première ligne de la première page à l’aide de l’opérateur d’ajout.

Voir le code ci-dessous.

clc
clear

MyVector = [5 6];
MyMatrix   = ones(2,2,2)
s = "After replacing row"
MyMatrix(1,:,1) = MyVector

Production:

MyMatrix(:,:,1) =

     1     1
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1


s =

    "After replacing row"


MyMatrix(:,:,1) =

     5     6
     1     1


MyMatrix(:,:,2) =

     1     1
     1     1

Dans le code ci-dessus, nous avons créé une matrice 3D de ceux avec 2 lignes, 2 colonnes et 2 pages. Nous avons remplacé la première ligne de la première page par un autre vecteur.

Comme nous le voyons dans la sortie ci-dessus, la sortie avant et après le texte affiché sur la sortie est différente car nous avons remplacé la première ligne de la première page. La taille de ligne qui est remplacée et la nouvelle ligne doivent être identiques.

Nous pouvons également remplacer une page entière ou n’importe quelle dimension par une autre matrice ou un autre tableau, mais la taille doit être la même.

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