MATLAB - Tableaux
Toutes les variables de tous les types de données dans MATLAB sont des tableaux multidimensionnels. Un vecteur est un tableau à une dimension et une matrice est un tableau à deux dimensions.
Nous avons déjà discuté des vecteurs et des matrices. Dans ce chapitre, nous aborderons les tableaux multidimensionnels. Cependant, avant cela, laissez-nous discuter de certains types spéciaux de tableaux.
Tableaux spéciaux dans MATLAB
Dans cette section, nous discuterons de 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.
le zeros() crée un tableau de tous les zéros -
Par exemple -
zeros(5)
MATLAB exécutera l'instruction ci-dessus et retournera 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
le ones() La fonction crée un tableau de tous -
Par exemple -
ones(4,3)
MATLAB exécutera l'instruction ci-dessus et retournera le résultat suivant -
ans =
1 1 1
1 1 1
1 1 1
1 1 1
le eye() fonction crée une matrice d'identité.
Par exemple -
eye(4)
MATLAB exécutera l'instruction ci-dessus et retournera le résultat suivant -
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
le rand() crée un tableau de nombres aléatoires uniformément distribués sur (0,1) -
Par exemple -
rand(3, 5)
MATLAB exécutera l'instruction ci-dessus et retournera 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
UNE magic square est un carré qui produit la même somme, lorsque ses éléments sont ajoutés en ligne, en colonne ou en diagonale.
le magic()La fonction crée un tableau carré magique. Il prend un argument singulier qui donne la taille du carré. L'argument doit être un scalaire supérieur ou égal à 3.
magic(4)
MATLAB exécutera l'instruction ci-dessus et retournera 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 bidimensionnel et l'étendons.
Par exemple, créons un tableau à deux dimensions a.
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB exécutera l'instruction ci-dessus et retournera 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 -
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
MATLAB exécutera l'instruction ci-dessus et retournera 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 uns (), zeros () ou rand ().
Par exemple,
b = rand(4,3,2)
MATLAB exécutera l'instruction ci-dessus et retournera 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 cat()fonction pour créer 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
dim est la dimension le long de laquelle concaténer les tableaux
Exemple
Créez un fichier de script et tapez le code suivant dedans -
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 de tableau
MATLAB fournit les fonctions suivantes pour trier, faire pivoter, permuter, remodeler ou déplacer le contenu d'un tableau.
Fonction | Objectif |
---|---|
longueur | Longueur du vecteur ou de la plus grande dimension de 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 de colonne |
est vide | 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 de ligne |
iscalaire | Détermine si l'entrée est scalaire |
isvector | 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 |
ctransposer | Transposer conjugué complexe |
diag | Matrices diagonales et diagonales de matrice |
flipdim | Inverse le tableau selon la dimension spécifiée |
fliplr | Inverse la matrice de gauche à droite |
flipud | Retourne la matrice de haut en bas |
ipermute | Inverse les dimensions permutées du tableau ND |
permuter | Réorganise les dimensions de la matrice ND |
repmat | Répliques et tableau de tuiles |
remodeler | Remodèle le tableau |
pourriture90 | Fait pivoter la matrice de 90 degrés |
shiftdim | Décale les dimensions |
est trié | 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 |
sortrows | Trie les lignes par ordre croissant |
écraser | Supprime les dimensions singleton |
transposer | Transposer |
vectoriser | Vectorise l'expression |
Exemples
Les exemples suivants illustrent certaines des fonctions mentionnées ci-dessus.
Length, Dimension and Number of elements −
Créez un fichier de script et tapez le code suivant dedans -
x = [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
Circular Shifting of the Array Elements −
Créez un fichier de script et tapez le code suivant dedans -
a = [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
Tri des tableaux
Créez un fichier de script et tapez le code suivant dedans -
v = [ 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
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.
le cellLa 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;
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 de script et tapez le code suivant dedans -
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 -
- Placer les index dans la première parenthèse (), pour faire référence à des ensembles de cellules
- Mettre les index entre accolades {}, pour faire référence aux données dans des cellules individuelles
Lorsque vous placez les index dans le premier crochet, 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écutera l'instruction ci-dessus et retournera 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 les indexant avec des accolades.
Par exemple -
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}
MATLAB exécutera l'instruction ci-dessus et retournera le résultat suivant -
ans = Blue
ans = Green
ans = Yellow