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