MATLAB - Tableaux
Toutes les variables de tous les types de données dans MATLAB sont des tableaux multidimensionnels. Un vecteur est un tableau unidimensionnel et une matrice est un tableau bidimensionnel.
Nous avons déjà parlé des vecteurs et des matrices. Dans ce chapitre, nous aborderons les tableaux multidimensionnels. Cependant, avant cela, discutons de certains types spéciaux de tableaux.
Tableaux spéciaux dans MATLAB
Dans cette section, nous aborderons certaines fonctions qui créent des tableaux spéciaux. Pour toutes ces fonctions, un seul argument crée un tableau carré, des arguments doubles créent un tableau rectangulaire.
Les zéros() la fonction crée un tableau de tous les zéros −
Par exemple −
Démo en directzeros(5)
MATLAB exécutera l'instruction ci-dessus et renverra 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
Les ceux() la fonction crée un tableau de tous les uns −
Par exemple −
Démo en directones(4,3)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant −
ans = 1 1 1 1 1 1 1 1 1 1 1 1
L'oeil() la fonction crée une matrice d'identité.
Par exemple −
Démo en directeye(4)
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant −
ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
Le rand() la fonction crée un tableau de nombres aléatoires uniformément distribués sur (0,1) −
Par exemple −
Démo en directrand(3, 5)
MATLAB exécutera l'instruction ci-dessus et renverra 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
Un carré magique
Un carré magique est un carré qui produit la même somme, lorsque ses éléments sont additionnés en ligne, en colonne ou en diagonale.
La magie() La fonction crée un tableau de carrés magiques. Il prend un argument singulier qui donne la taille du carré. L'argument doit être un scalaire supérieur ou égal à 3.
Démo en directmagic(4)
MATLAB exécutera l'instruction ci-dessus et renverra 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é un tableau multidimensionnel dans MATLAB. Les tableaux multidimensionnels dans MATLAB sont une extension de la matrice bidimensionnelle normale.
Généralement, pour générer un tableau multidimensionnel, nous créons d'abord un tableau à deux dimensions et l'étendons.
Par exemple, créons un tableau à deux dimensions a.
Démo en directa = [7 9 5; 6 1 9; 4 3 2]
MATLAB exécutera l'instruction ci-dessus et renverra 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 −
Démo en directa(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB exécutera l'instruction ci-dessus et renverra 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,
Démo en directb = rand(4,3,2)
MATLAB exécutera l'instruction ci-dessus et renverra 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 également utiliser le chat() fonction pour construire des tableaux multidimensionnels. Il concatène une liste de tableaux le long d'une dimension spécifiée −
La syntaxe de la fonction cat() est −
B = cat(dim, A1, A2...)
Où,
-
B est le nouveau tableau créé
-
A1 , A2 , ... sont les tableaux à concaténer
-
estompé est la dimension selon laquelle concaténer les tableaux
Exemple
Créez un fichier de script et tapez-y le code suivant −
Démo en directa = [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 de tableau
MATLAB fournit les fonctions suivantes pour trier, faire pivoter, permuter, remodeler ou décaler le contenu d'un tableau.
Fonction | Objectif |
---|---|
longueur | Longueur du vecteur ou plus grande dimension du tableau |
ndims | Nombre de dimensions du tableau |
numel | Nombre d'éléments du tableau |
taille | Dimensions du tableau |
iscolumn | Détermine si l'entrée est un vecteur colonne |
estvide | Détermine si le tableau est vide |
ismatrix | Détermine si l'entrée est une matrice |
isrow | Détermine si l'entrée est un vecteur ligne |
isscalaire | Détermine si l'entrée est scalaire |
estvecteur | Détermine si l'entrée est vectorielle |
blkdiag | Construit une matrice diagonale de bloc à partir des arguments d'entrée |
circshift | Décale le tableau de manière circulaire |
transposer | Transposition conjuguée complexe |
diag | Matrices diagonales et diagonales de matrice |
flipdim | Inverse le tableau le long de la dimension spécifiée |
fliplr | Inverse la matrice de gauche à droite |
flipud | Inverse la matrice de haut en bas |
ipermute | Inverse permute les dimensions du tableau N-D |
permuter | Réorganise les dimensions du tableau N-D |
repmat | Répliques et tableau de tuiles |
remodeler | Reforme le tableau |
rot90 | Fait pivoter la matrice de 90 degrés |
shiftdim | Déplace les dimensions |
sorti | Détermine si les éléments de l'ensemble sont triés |
trier | Trie les éléments du tableau par ordre croissant ou décroissant |
trier les lignes | Trier les lignes par ordre croissant |
presser | Supprime les dimensions singleton |
transposer | Transposer |
vectoriser | Vectorise l'expression |
Exemples
Les exemples suivants illustrent certaines des fonctions mentionnées ci-dessus.
Longueur, Dimension et Nombre d'éléments −
Créez un fichier de script et tapez-y le code suivant −
Démo en directx = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9]; length(x) % length of x vector y = rand(3, 4, 5, 2); ndims(y) % no of dimensions in array y s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab']; numel(s) % no of elements in s
Lorsque vous exécutez le fichier, il affiche le résultat suivant −
ans = 8 ans = 4 ans = 23
Déplacement circulaire des éléments du tableau −
Créez un fichier de script et tapez-y le code suivant −
Démo en directa = [1 2 3; 4 5 6; 7 8 9] % the original array a b = circshift(a,1) % circular shift first dimension values down by 1. c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1 % and second dimension values to the left % by 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
Trier les tableaux
Créez un fichier de script et tapez-y le code suivant −
Démo en directv = [ 23 45 12 9 5 0 19 17] % horizontal vector sort(v) % sorting v m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array sort(m, 1) % sorting m along the row sort(m, 2) % sorting m along the column
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
Matrice 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 cellule La fonction est utilisée pour créer un tableau de cellules. La syntaxe de la fonction de cellule est −
C = cell(dim) C = cell(dim1,...,dimN) D = cell(obj)
Où,
-
C est le tableau de cellules ;
-
estompé 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 éléments suivants −
- Tableau ou objet Java
- Tableau .NET de type System.String ou System.Object
Exemple
Créez un fichier de script et tapez-y le code suivant −
Démo en directc = 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éder 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 −
- Englobant les indices entre parenthèses (), pour faire référence à des ensembles de cellules
- Entourer les indices entre accolades {}, pour faire référence aux données dans les cellules individuelles
Lorsque vous placez les index entre les premières 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 −
Démo en directc = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c(1:2,1:2)
MATLAB exécutera l'instruction ci-dessus et renverra 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 −
Démo en directc = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}; c{1, 2:4}
MATLAB exécutera l'instruction ci-dessus et renverra le résultat suivant −
ans = Blue ans = Green ans = Yellow
MATLAB