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 4Si 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 33.*A
ans =
3 6 9
3 6 9L’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 3m = [2 4 6]
m =
2 4 6A - m
ans =
-1 -3 -5
0 -2 -4
1 -1 -3Un 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 3y = [10; 15]
y =
10
15x + y
ans =
11 12 13
16 17 18Si 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 2m = [2 4]
m =
2 4A - 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 |
| plus |
| Plus unaire |
| uplus |
| Soustraction |
| minus |
| Moins unaire |
| uminus |
| Multiplication élément par élément |
| times |
| Puissance élément par élément |
| power |
./ | Division de tableau à droite |
| rdivide |
| Division de tableau à gauche |
| ldivide |
| Transposée de tableau |
| 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
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 20Le produit de matrice précédent n’est pas égal au produit élément par élément suivant.
A.*B
ans =
3 0
2 20La 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 |
| mtimes |
| Division matricielle à gauche |
| mldivide |
| Division matricielle à droite |
| mrdivide |
| Puissance de matrice |
| mpower |
| Transposée conjuguée complexe |
| ctranspose |