MATLAB : Maîtriser les tableaux multidimensionnels et spéciaux
Dans MATLAB, toutes les variables de tous les types de données sont des tableaux multidimensionnels. Un vecteur est un tableau unidimensionnel et une matrice est un tableau bidimensionnel.
Nous avons déjà abordé les vecteurs et les matrices. Dans ce chapitre, nous discuterons des tableaux multidimensionnels. Mais avant cela, examinons certains types spéciaux de tableaux.
Tableaux spéciaux dans MATLAB
Cette section présente des fonctions qui créent des tableaux particuliers. Pour toutes ces fonctions, un seul argument crée un tableau carré, deux arguments créent un tableau rectangulaire.
La fonction zeros() crée un tableau rempli de zéros :
Par exemple :
zeros(5)
MATLAB exécute l'instruction et retourne le résultat suivant :
ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
La fonction ones() crée un tableau remplis de uns :
Par exemple :
ones(4,3)
MATLAB exécute l'instruction et retourne le résultat suivant :
ans = 1 1 1 1 1 1 1 1 1 1 1 1
La fonction eye() crée une matrice identité.
Par exemple :
eye(4)
MATLAB exécute l'instruction et retourne le résultat suivant :
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
La fonction rand() crée un tableau de nombres aléatoires uniformément distribués sur (0,1) :
Par exemple :
rand(3, 5)
MATLAB exécute l'instruction et retourne le résultat suivant :
ans = 0.8147 0.9134 0.2785 0.9649 0.9572 0.9058 0.6324 0.5469 0.1576 0.4854 0.1270 0.0975 0.9575 0.9706 0.8003
Carré magique
Un carré magique est un carré qui produit la même somme lorsque ses éléments sont additionnés ligne par ligne, colonne par colonne ou en diagonale.
La fonction magic() crée un tableau de carré magique. Elle prend un argument unique qui donne la taille du carré. L'argument doit être un scalaire supérieur ou égal à 3.
magic(4)
MATLAB exécute l'instruction et retourne le résultat suivant :
ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
Tableaux multidimensionnels
Un tableau ayant plus de deux dimensions est appelé tableau multidimensionnel dans MATLAB. Les tableaux multidimensionnels sont une extension de la matrice bidimensionnelle classique.
Généralement, pour générer un tableau multidimensionnel, on crée d'abord un tableau bidimensionnel puis on l'étend.
Par exemple, créons un tableau bidimensionnel a :
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB exécute l'instruction et retourne le résultat suivant :
a = 7 9 5 6 1 9 4 3 2
Le tableau a est un tableau 3 par 3 ; nous pouvons ajouter une troisième dimension à a en fournissant les valeurs comme suit :
a(:, :, 2) = [1 2 3; 4 5 6; 7 8 9]
MATLAB exécute l'instruction et retourne le résultat suivant :
a = ans(:,:,1) = 0 0 0 0 0 0 0 0 0 ans(:,:,2) = 1 2 3 4 5 6 7 8 9
Nous pouvons également créer des tableaux multidimensionnels en utilisant les fonctions ones(), zeros() ou rand().
Par exemple :
b = rand(4,3,2)
MATLAB exécute l'instruction et retourne le résultat suivant :
b(:,:,1) = 0.0344 0.7952 0.6463 0.4387 0.1869 0.7094 0.3816 0.4898 0.7547 0.7655 0.4456 0.2760 b(:,:,2) = 0.6797 0.4984 0.2238 0.6551 0.9597 0.7513 0.1626 0.3404 0.2551 0.1190 0.5853 0.5060
Nous pouvons aussi utiliser la fonction cat() pour construire des tableaux multidimensionnels. Elle concatène une liste de tableaux le long d'une dimension spécifiée :
Syntaxe de la fonction cat() :
B = cat(dim, A1, A2...)
Où :
B est le nouveau tableau créé
A1, A2, ... sont les tableaux à concaténer
dim est la dimension le long de laquelle concaténer les tableaux
Exemple
Créez un fichier script et saisissez le code suivant :
a = [9 8 7; 6 5 4; 3 2 1]; b = [1 2 3; 4 5 6; 7 8 9]; c = cat(3, a, b, [2 3 1; 4 7 8; 3 9 0])
Lorsque vous exécutez le fichier, il affiche :
c(:,:,1) = 9 8 7 6 5 4 3 2 1 c(:,:,2) = 1 2 3 4 5 6 7 8 9 c(:,:,3) = 2 3 1 4 7 8 3 9 0
Fonctions sur les tableaux
MATLAB fournit les fonctions suivantes pour trier, pivoter, permuter, redimensionner ou décaler le contenu des tableaux.
| Fonction | But |
|---|---|
| length | Longueur d'un vecteur ou plus grande dimension d'un tableau |
| ndims | Nombre de dimensions d'un tableau |
| numel | Nombre d'éléments d'un tableau |
| size | Dimensions d'un tableau |
| iscolumn | Détermine si l'entrée est un vecteur colonne |
| isempty | Détermine si un tableau est vide |
| ismatrix | Détermine si l'entrée est une matrice |
| isrow | Détermine si l'entrée est un vecteur ligne |
| isscalar | Détermine si l'entrée est un scalaire |
| isvector | Détermine si l'entrée est un vecteur |
| blkdiag | Construit une matrice diagonale par blocs à partir des arguments d'entrée |
| circshift | Décale un tableau de manière circulaire |
| ctranspose | Transposée conjuguée complexe |
| diag | Matrices diagonales et diagonales d'une matrice |
| flipdim | Renverse un tableau le long d'une dimension spécifiée |
| fliplr | Renverse une matrice de gauche à droite |
| flipud | Renverse une matrice de haut en bas |
| ipermute | Inverse la permutation des dimensions d'un tableau N-D |
| permute | Réorganise les dimensions d'un tableau N-D |
| repmat | Réplique et pavé un tableau |
| reshape | Redimensionne un tableau |
| rot90 | Fait pivoter une matrice de 90 degrés |
| shiftdim | Décale les dimensions |
| issorted | Détermine si les éléments d'un ensemble sont triés |
| sort | Trie les éléments d'un tableau dans l'ordre croissant ou décroissant |
| sortrows | Trie les lignes dans l'ordre croissant |
| squeeze | Supprime les dimensions singulières |
| transpose | Transposée |
| vectorize | Vectorise une expression |
Exemples
Les exemples suivants illustrent certaines des fonctions mentionnées ci-dessus.
Longueur, dimension et nombre d'éléments :
Créez un fichier script et saisissez le code suivant :
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % longueur du vecteur x y = rand(3, 4, 5, 2); ndims(y) % nombre de dimensions du tableau y s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab']; numel(s) % nombre d'éléments dans s
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
ans = 8 ans = 4 ans = 23
Décalage circulaire des éléments du tableau :
Créez un fichier script et saisissez le code suivant :
a = [1 2 3; 4 5 6; 7 8 9] % le tableau original a b = circshift(a,1) % décalage circulaire de la première dimension vers le bas de 1 c = circshift(a,[1 -1]) % décalage circulaire de la première dimension % vers le bas de 1 % et de la seconde dimension vers la gauche % de 1
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
a = 1 2 3 4 5 6 7 8 9 b = 7 8 9 1 2 3 4 5 6 c = 8 9 7 2 3 1 5 6 4
Tri des tableaux
Créez un fichier script et saisissez le code suivant :
v = [23 45 12 9 5 0 19 17] % vecteur horizontal sort(v) % tri de v m = [2 6 4; 5 3 9; 2 0 1] % tableau bidimensionnel sort(m, 1) % tri de m le long des lignes sort(m, 2) % tri de m le long des colonnes
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
v = 23 45 12 9 5 0 19 17 ans = 0 5 9 12 17 19 23 45 m = 2 6 4 5 3 9 2 0 1 ans = 2 0 1 2 3 4 5 6 9 ans = 2 4 6 3 5 9 0 1 2
Tableau de cellules
Les tableaux de cellules sont des tableaux de cellules indexées où chaque cellule peut stocker un tableau de dimensions et de types de données différents.
La fonction cell est utilisée pour créer un tableau de cellules. Syntaxe de la fonction cell :
C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj)
Où :
C est le tableau de cellules ;
dim est un entier scalaire ou un vecteur d'entiers qui spécifie les dimensions du tableau de cellules C ;
dim1, ..., dimN sont des entiers scalaires qui spécifient les dimensions de C ;
obj est l'un des suivants :
- Tableau ou objet Java
- Tableau .NET de type System.String ou System.Object
Exemple
Créez un fichier script et saisissez le code suivant :
c = cell(2, 5); c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
c = { [1,1] = Red [2,1] = 1 [1,2] = Blue [2,2] = 2 [1,3] = Green [2,3] = 3 [1,4] = Yellow [2,4] = 4 [1,5] = White [2,5] = 5 }
Accès aux données dans les tableaux de cellules
Il existe deux façons de faire référence aux éléments d'un tableau de cellules :
- En fermant les indices entre parenthèses (), pour faire référence à des ensembles de cellules
- En fermant les indices entre accolades {}, pour faire référence aux données à l'intérieur de cellules individuelles
Lorsque vous fermez les indices entre parenthèses, cela fait référence à l'ensemble de cellules.
Les indices de tableau de cellules entre parenthèses lisses font référence à des ensembles de cellules.
Par exemple :
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c(1:2,1:2)
MATLAB exécute l'instruction et retourne le résultat suivant :
ans = { [1,1] = Red [2,1] = 1 [1,2] = Blue [2,2] = 2 }
Vous pouvez également accéder au contenu des cellules en indexant avec des accolades.
Par exemple :
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c{1, 2:4}
MATLAB exécute l'instruction et retourne le résultat suivant :
ans = Blue ans = Green ans = Yellow
MATLAB
- Maîtriser les tableaux C# : Déclaration, initialisation et opérations
- Maîtriser les tableaux en escalier C# : Déclaration, initialisation et accès
- Techniques de copie de tableaux en Java : Guide complet
- Les tableaux en C++ : Déclaration, initialisation et techniques avec pointeurs
- Maîtriser l'allocation de tableaux dynamiques en C++ : Guide pratique avec exemples de code
- MATLAB : Aperçu complet de l'environnement de calcul numérique de référence
- Comprendre les variables dans MATLAB : Bases et exemples
- Commandes MATLAB essentielles pour un calcul efficace
- Maîtriser les matrices MATLAB : Création, indexation et manipulation