Une matrice est tableau de nombres à deux dimensions. Dans MATLAB une matrice est crée en saisissant  les éléments d’une ligne séparés par une virgule ou un espace, suivi d’un point virgule, puis les éléments de la colonne qui suit.

Création d'une matrice

Exemple :

>>  A = [1  2  3 ;  4  5  6 ;  7  8  9]

A =

      1   2   3

      3   4   5

      6   7   8

Référencement des éléments d’une matrice 

Pour accéder à un élément d’une matrice, il suffit d’indiquer son numéro de ligne et son numéro de colonne.

 

Exemple :

>> A = [1   2   3 ;  4   5   6 ; 7   8   9] ;

>> A(2, 3)

ans =

          6

>> B = A( : , 2)

B =

      2

      5

      8

>>  C = A(1 , :)

C =

      1  2  3

 

On peut sélectionner une partie d’une matrice :

>> D = A(1:2, :)

D =

      1   2   3

      4   5   6

>> E = A(:, 2:3)

E =

     2     3

     5     6

     8     9

 

Il est aussi possible d’accéder à un seul élément en utilisant un indexage simple.

 

Par exemple :

>> A(5)

ans =

          5

Ceci est possible car MATLAB stocke les matrice en mémoire de façon particulière. Supposons

 

>> A = [2  6  5 ; 1  3  4 ; 7  8  9]

A  =

       2   6   5

       1   3   4

       7   8   9

La matrice A est stockée en mémoire sous cette forme   2  6  5  1  3  4  7  8  9

 

Opérations sur les matrices 

Effacer une ligne ou une colonne 

Dans MATLAB, on peut effacer une ligne ou une colonne entière d’une matrice ; il suffit pour cela de remplacer la ligne ou la colonne concernée par des crochets vides.

 

Exemple :

    >> A = [1  2  3  4 ; 5  6  7  8 ; 4  6  2  3 ; 4  2  6  3]

A =

     1   2   3   4

     5   6   7   8

     4   6   2   3

     4   2   6   3

Pour effacer la ligne 4 de la matrice A par exemple

>> A(4, :) = []

A =

      1   2   3   4

      5   6   7   8

      4   6   2   3

 

Pour effacer la colonne 3 par exemple

 

>>  A( :, 3) = []

A =

      1   2   4

      5   6   8

      4   6   3

Addition et soustraction de deux matrices 

On peut additionner ou soustraire deux matrices. Toute fois les deux matrices opérandes doivent être du même type et de même dimension.

 

Exemple :

>> A = [1  2  3 ; 4  5  6 ; 7  8  9] ;

>> B = [7  5  6 ; 2  0  8 ; 5  7  1] ;

>> S = A + B

S =

      8   7   9

      6   5  14

     12  15  10

>> D = A – B

D =

     -6   -3   -3

      2    5   -2

      2    1    8

Division à gauche – division à droite d’une matrice

Dans MATLAB, on peut diviser deux matrices soit à gauche (\), soit à droite (/) ; les deux matrices doivent du même type et de même dimension.

 

Exemple:

>> N = [1  2  3 ; 4  5  6 ; 7  8  9] ;

>> M = [7  5  6 ; 2  0  8 ; 5  7  1] ;

>> A = N./M %ici on a une division à droite élément par élément

A =

    0.1429    0.4000    0.5000

    2.0000       Inf    0.7500

    1.4000    1.1429    9.0000

 

Division à gauche élément par élément :

>> B = N.\M

B =

    7.0000    2.5000    2.0000

    0.5000         0    1.3333

    0.7143    0.8750    0.1111

Opérations scalaires sur les Matrices

Une opération scalaire sur une matrice produit une nouvelle matrice ayant le même nombre de lignes et de colonnes que la matrice originale avec laquelle le nombre est ajouté, soustrait, multiplié, ou divisé.

 

>> K = [50  40  30 ; 12  16  14 ; 20  8  10] ;

>> Q = 2 ;

>> A = K + Q ;

>> B = K – Q ;

>> C = K*Q ;

>> D = K/Q ;

>> disp(A)

A =

     52   42  32

     14   18  16

     22   10  12

>> disp(B)

B =

      48   38   28

      10   14   12

      18    6    8

>> disp(C)

C =

     100   80   60

      24   32   28

      40   16   20

>> disp(D)

D =

      25   20   15

      6     8    7

     10     4    5

Transposition d’une matrice

C’est une opération qui consiste à échanger les lignes et les colonnes d’une matrice. Cette opération est représenté par le signe quote ().

 

Exemple :

>> A = [1  2  3 ; 4  5  6 ; 7  8  9]

 

A =

      1   2   3

      4   5   6

      7   8   9

>>  B =  A’

B = 

       1   4   7

       2   5   8

       3   6   9

Concaténation de deux matrices

Dans MATLAB on peut effecteur deux opérations de concaténation :

 

La  Concaténation horizontale :

On utilise une virgule pour concaténer deux matrices :

 

Exemple :

>> A = [3  2  6 ;  5  4  8 ; 7  9  1] ;

>> B = [10  20  30 ; 40  50  60 ; 70  80  90] ;

>> C = [A, B]

C =

       3  2  6  10  20  30

       5  4  8  40  50  60

       7  9  1  70  80  90

 

La concaténation verticale:

On utilise le point virgule pour concaténer deux matrices:

 

Exemple:

>> D = [A ; B]

D =

       3   2   6

       5   4   8

       7   9   1

      10  20  30

      40  50  60

      70  80  90

Multiplication de matrice

Soit A une matrice mxn, et B une matrice nxp. Le produit des deux matrices donne une matrice C de dimension mxn.  Ce produit n’est possible que si le nombre de colonnes n de la matrice A est égal au nombre de lignes n de la matrice B.

Dans MATLAB la multiplication est réalisée grâce à l’opérateur « * ».

 

>> A = [1  2  3 ; 4  5  6 ; 7  8  9] ;

>> B = [3  2  4 ; 5  6  1 ; 8  9  7] ;

>> M = A*B

M =

      37    41    27

      85    92    63

     133   143    99

  Déterminant d’une matrice 

On calcule le déterminant  à l’aide de la fonction prédéfinie det().

 

>> A = [1  2  3 ; 2  3  4 ; 1  2  5] ;

>> det (A)

ans =

          -2

L’inverse d’une matrice

L’inverse d’une matrice A noté ; A-1 est telle que  A*A-1 = A-1*A = 1.

Si le déterminant d’une matrice est égal à 0, alors son inverse n’existe pas.

 

>>  A = [3  2  5 ; 2  1  6 ; 4  5  9] ;

>> I = inv(A)

I =

    1.0000   -0.3333   -0.3333

   -0.2857   -0.3333    0.3810

   -0.2857    0.3333    0.0476

>> B = inv(I)

B =

    3.0000    2.0000    5.0000

    2.0000    1.0000    6.0000

    4.0000    5.0000    9.0000

Trace d’une matrice

La trace d’une matrice carrée m lignes, m colonnes est égale à la somme des éléments de sa diagonale.

Dans MATLAB on utilise la fonction prédéfinie trace(), pour calculer l trace d’une matrice.

 

Exemple :

>> B = [1  2  3 ; 4  5  6 ; 7  8  9]

B =

      1  2  3

      4  5  6

      7  8  9

>> trace(B)

ans =

        15

Rotation d’une matrice de 90 degrés

Pour faire une rotation d’une matrice de 90 degrés, on utilise la fonction  rot90() ; il est possible aussi d’utiliser la fonction rot90(M, k), qui effectue une rotation de la matrice M de k*90.

 

Exemple :

>> A = [1  2  3 ; 4  5  6 ; 7  8  9]

A =

      1   2   3

      4   5   6

      7   8   9

>> rot90(A)

 

ans =

             3   6   9

             2   5   8

             1   4   7

 

La fonction prédéfinie  flipdim() permet aussi de faire pivoter une matrice dans une dimension  spécifiée.

 

Syntaxe :

R = flipdim(A, k)

k = 1, on a un pivot horizontal de la matrice Al, et lorsque k = 2, on a un pivot vertical de la matrice A.

 

Exemple :

>> A = [1  2  3 ; 4  5  6 ; 7  8  9]

A =

      1   2   3

      4   5   6

      7   8   9

>>  B = flipdim(A, 1)

B =

      7   8   9

      4   5   6

      1   2   3

>> C  = flipdim(A,2)

 

C =

       3   2   1

       6   5   4

       9   8   7

 Autres types de matrices

MATLAB propose certaines fonctions permettant de créer des matrices spéciales.

On peut citer par exemple les fonctions :

 

ones(),

Syntaxe :

ones(k) : crée une matrice carrée de k lignes, k colonnes, constituée essentiellement des « 1 ».

ones(k, l) : crée une matrice k lignes, l colonnes, constituée des « 1 ».

 

zeros()

Syntaxe :

zeros(k) : crée une matrice carrée k lignes, k colonnes constituée des « 0 ».

zeros(k , l) : crée une matrice k lgnes, l colonnes constituée des « 0 ».

 

eye()

C’est une fonction qui permet de créer une matrice identité.

Exemple :

>> eye(4)

ans =

           1   0   0   0

           0   1   0   0

           0   0   1   0

           0   0   0   1

 

rand()

Crée une matrice de nombres aléatoires uniformément distribuée compris entre 0 et 1.

 

Exemple :

>> rand(2, 4) ;

ans =

        0.8147    0.1270    0.6324    0.2785

        0.9058    0.9134    0.0975    0.5469

Crée une distribution de nombres aléatoire compris entre 0 et 1, répartis sur 2 lignes et 4 colonnes.

 

magic()

Crée une matrice carrée dont la somme des éléments de chaque lignes est égale à la somme des éléments de toutes les colonnes et égale aussi à la somme des éléments de la diagonale.

Exemple :

>> magic(3)

ans =

        8     1     6

        3     5     7

        4     9     2

 

Pour finir le tableau ci-après présente quelques fonctions MATLAB relatives à la gestion des matrices:

Nom de la fonction     Utilisation
length()

Longueur de la plus grande dimension d'un tableau,

nombre d'éléments d'un vecteur

ndims() nombre de dimension d'un tableau
numel() nombre d'élément d'un tableau
size() dimension d'une matrice
iscolumn() determine si l'entrée est un vecteur colonne
isempty() determine si un tableau est vide
ismatrix() determine si l'entre est une matrice
isrow() determine si l'entrée est un vecteur
isscalar() determine si l'entrée est un scalaire
isvector() determine si l'entrée est un vecteur
diag()

diagonale de la matrice

flipdim() retourne un tableau sur une dimension specifiee
fliplr retourne une matrice a gauche
flipud retourne une matrice du haut vers le bas
permute()

rearrange la dimension d'un tableau dans un ordre

spécifié

rot90() rotation d'une matrice de 90 degrees
sort() trie les elements d'une matrice
sortrows() trie une ligne dans un ordre croissant
vectorise() vectorise une expression

MATLAB possède une très grande quantité de fonctions prédéfinies pour faire des opérations sur des matrices. Ce tableau ne donne qu'une fraction de fonctions disponibles dans ce logiciel.