Contenu principal

Opérations sur les matrices et les tableaux

Introduction

MATLAB® dispose de deux types différents d’opérations arithmétiques : les opérations sur les tableaux et les opérations sur les matrices. Vous pouvez utiliser ces opérations arithmétiques pour effectuer des calculs numériques, par exemple pour additionner deux nombres, élever les éléments d’un tableau à une puissance donnée, ou multiplier deux matrices.

Les opérations sur les matrices respectent les règles de l’algèbre linéaire. En revanche, les opérations sur les tableaux exécutent des opérations élément par élément et supportent les tableaux multidimensionnels. Le caractère point (.) distingue les opérations sur les tableaux des opérations sur les matrices. Cependant, puisque les opérations sur les matrices et sur les tableaux sont les mêmes pour l’addition et la soustraction, les paires de caractères .+ et .- sont inutiles.

Opérations sur les tableaux

Les opérations sur les tableaux exécutent des opérations élément par élément sur les éléments correspondants de vecteurs, matrices et tableaux multidimensionnels. Si les opérandes sont de la même taille, alors chaque élément du premier opérande est associé à l’élément situé au même emplacement dans le deuxième opérande. Si les opérandes sont de taille compatible, alors chaque entrée est implicitement étendue selon les besoins pour correspondre à la taille de l’autre.

À titre d’exemple simple, vous pouvez additionner deux vecteurs de la même taille.

A = [1 1 1]
A =

     1     1     1
B = [1 2 3]
B =

     1     2     3
A+B
ans =

     2     3     4

Si un opérande est un scalaire et l’autre non, alors MATLAB étend implicitement le scalaire pour qu’il soit de la même taille que l’autre opérande. Par exemple, vous pouvez calculer le produit élément par élément d’un scalaire et d’une matrice.

A = [1 2 3; 1 2 3]
A =

     1     2     3
     1     2     3
3.*A
ans =

     3     6     9
     3     6     9

L’expansion implicite fonctionne également si vous soustrayez un vecteur de 1 par 3 d’une matrice de 3 par 3 parce que les deux tailles sont compatibles. Quand vous effectuez une soustraction, le vecteur est étendu implicitement pour devenir une matrice de 3 par 3.

A = [1 1 1; 2 2 2; 3 3 3]
A =

     1     1     1
     2     2     2
     3     3     3
m = [2 4 6]
m =

     2     4     6
A - m
ans =

    -1    -3    -5
     0    -2    -4
     1    -1    -3

Un vecteur ligne et un vecteur colonne sont de taille compatible. Si vous additionnez un vecteur de 1 par 3 à un vecteur de 2 par 1, alors chaque vecteur s’étend implicitement et devient une matrice de 2 par 3 avant que MATLAB n’exécute l’addition élément par élément.

x = [1 2 3]
x =

     1     2     3
y = [10; 15]
y =

    10
    15
x + y
ans =

    11    12    13
    16    17    18

Si les tailles des deux opérandes sont incompatibles, alors vous obtenez une erreur.

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

     8     1     6
     3     5     7
     4     9     2
m = [2 4]
m =

     2     4
A - m
Arrays have incompatible sizes for this operation.

Pour plus d’informations, consultez Tailles de tableau compatibles pour les opérations de base.

La table suivante résume les opérateurs de tableau arithmétiques de MATLAB. Pour des informations spécifiques sur chaque fonction, cliquez sur le lien vers la page de référence de la fonction dans la dernière colonne.

Opérateur

Objectif

Description

Page de référence

+

Addition

A+B additionne A et B.

plus

+

Plus unaire

+A renvoie A.

uplus

-

Soustraction

A-B soustrait B de A

minus

-

Moins unaire

-A rend les éléments de A négatifs.

uminus

.*

Multiplication élément par élément

A.*B est le produit élément par élément de A et B.

times

.^

Puissance élément par élément

A.^B est la matrice d’éléments A(i,j) à la puissance B(i,j).

power
./

Division de tableau à droite

A./B est la matrice d’éléments A(i,j)/B(i,j).

rdivide

.\

Division de tableau à gauche

A.\B est la matrice d’éléments B(i,j)/A(i,j).

ldivide

.'

Transposée de tableau

A.' est la transposée de tableau de A. Pour les matrices complexes, cela n’implique pas de conjugaison.

transpose

Opérations matricielles

Les opérations sur les matrices respectent les règles de l’algèbre linéaire et sont incompatibles avec les tableaux multidimensionnels. La taille et la forme requises des entrées l’une par rapport à l’autre dépend de l’opération. Pour les entrées non scalaires, les opérateurs de matrice calculent en général des réponses différentes de celles de leurs homologues opérateurs de tableaux.

Par exemple, si vous utilisez l’opérateur de division matricielle à droite, /, pour diviser deux matrices, les matrices doivent comporter le même nombre de colonnes. Mais si vous utilisez l’opérateur de multiplication de matrice, *, pour multiplier deux matrices, alors celles-ci doivent avoir une dimension intérieure commune. C’est-à-dire que le nombre de colonnes de la première entrée doit être égal au nombre de lignes de la deuxième entrée. L’opérateur de multiplication de matrice calcule le produit de deux matrices avec la formule

C(i,j)=k=1nA(i,k)B(k,j).

Pour voir cela, vous pouvez calculer le produit de deux matrices.

A = [1 3;2 4]
A =

     1     3
     2     4
B = [3 0;1 5]
B =

     3     0
     1     5
A*B
ans =

     6    15
    10    20

Le produit de matrice précédent n’est pas égal au produit élément par élément suivant.

A.*B
ans =

     3     0
     2    20

La table suivante résume les opérateurs arithmétiques de matrice de MATLAB. Pour des informations spécifiques sur chaque fonction, cliquez sur le lien vers la page de référence de la fonction dans la dernière colonne.

Opérateur

Objectif

Description

Page de référence

*

Multiplication de matrices

C = A*B est le produit algébrique linéaire des matrices A et B. Le nombre de colonnes de A doit être égal au nombre de lignes de B.

mtimes

\

Division matricielle à gauche

x = A\B est la solution de l’équation Ax = B. Les matrices A et B doivent comporter le même nombre de lignes.

mldivide

/

Division matricielle à droite

x = B/A est la solution de l’équation xA = B. Les matrices A et B doivent comporter le même nombre de colonnes. En termes d’opérateur de division à gauche, B/A = (A'\B')'.

mrdivide

^

Puissance de matrice

A^B est A à la puissance B, si B est un scalaire. Pour d’autres valeurs de B, le calcul implique des valeurs et des vecteurs propres.

mpower

'

Transposée conjuguée complexe

A' est la transposée algébrique linéaire de A. Pour les matrices complexes, c’est la transposée conjuguée complexe.

ctranspose

Voir aussi

Rubriques