Opérations matricielles de base
Cet exemple présente des techniques et fonctions de base pour utiliser des matrices avec le langage de programmation MATLAB®.
Commençons par créer un vecteur simple à 9 éléments appelé a.
a = [1 2 3 4 6 4 3 4 5]
a = 1×9
1 2 3 4 6 4 3 4 5
À présent, ajoutons 2 à chaque élément du vecteur a et stockons le résultat dans un nouveau vecteur.
Nous voyons que MATLAB ne nécessite aucun traitement particulier pour effectuer des calculs vectoriels ou matriciels.
b = a + 2
b = 1×9
3 4 5 6 8 6 5 6 7
Il suffit d’une commande pour créer des graphiques dans MATLAB. Traçons le résultat de notre addition vectorielle en affichant les lignes de grille.
plot(b)
grid on
MATLAB permet également de créer d’autres types de graphiques avec des étiquettes d’axes.
bar(b) xlabel('Sample #') ylabel('Pounds')

MATLAB permet également d’utiliser des symboles dans les tracés. Voici un exemple qui utilise des étoiles pour représenter les points. MATLAB propose divers autres symboles et types de lignes.
plot(b,'*')
axis([0 10 0 10])
MATLAB excelle particulièrement dans le calcul matriciel.
Il est aussi facile de créer une matrice qu’un vecteur en utilisant des points-virgules (;) pour séparer les lignes de la matrice.
A = [1 2 0; 2 5 -1; 4 10 -1]
A = 3×3
1 2 0
2 5 -1
4 10 -1
Nous pouvons facilement obtenir la transposée de la matrice A.
B = A'
B = 3×3
1 2 4
2 5 10
0 -1 -1
À présent, multiplions ces deux matrices l’une par l’autre.
Nous voyons là encore que MATLAB ne nécessite pas de traiter les matrices comme un ensemble de nombres. MATLAB sait quand vous travaillez avec des matrices et adapte les calculs en conséquence.
C = A * B
C = 3×3
5 12 24
12 30 59
24 59 117
Au lieu d’effectuer une multiplication matricielle, nous pouvons multiplier les éléments correspondants de deux matrices ou vecteurs avec l’opérateur .*.
C = A .* B
C = 3×3
1 4 0
4 25 -10
0 -10 1
Utilisons la matrice A pour résoudre l’équation A*x = b. Pour cela, nous utilisons l’opérateur \ (antislash).
b = [1;3;5]
b = 3×1
1
3
5
x = A\b
x = 3×1
1
0
-1
Nous pouvons maintenant démontrer que A*x est égal à b.
r = A*x - b
r = 3×1
0
0
0
MATLAB propose des fonctions pour pratiquement tous les types de calculs matriciels courants.
Il existe des fonctions pour obtenir les valeurs propres…
eig(A)
ans = 3×1
3.7321
0.2679
1.0000
… et les valeurs singulières.
svd(A)
ans = 3×1
12.3171
0.5149
0.1577
La fonction « poly » génère un vecteur contenant les coefficients du polynôme caractéristique.
Le polynôme caractéristique d’une matrice A est :
p = round(poly(A))
p = 1×4
1 -5 5 -1
Nous pouvons facilement rechercher les racines d’un polynôme avec la fonction roots.
Il s’agit en fait des valeurs propres de la matrice d’origine.
roots(p)
ans = 3×1
3.7321
1.0000
0.2679
MATLAB propose de nombreuses applications qui vont au-delà du simple calcul matriciel.
Pour convoluer deux vecteurs…
q = conv(p,p)
q = 1×7
1 -10 35 -52 35 -10 1
… ou les convoluer à nouveau et tracer le résultat.
r = conv(p,q)
r = 1×10
1 -15 90 -278 480 -480 278 -90 15 -1
plot(r);

Nous pouvons à tout moment obtenir la liste des variables stockées en mémoire avec la commande who ou whos.
whos
Name Size Bytes Class Attributes A 3x3 72 double B 3x3 72 double C 3x3 72 double a 1x9 72 double ans 3x1 24 double b 3x1 24 double p 1x4 32 double q 1x7 56 double r 1x10 80 double x 3x1 24 double
Vous pouvez obtenir la valeur d’une variable particulière en saisissant son nom.
A
A = 3×3
1 2 0
2 5 -1
4 10 -1
Vous pouvez associer plusieurs instructions sur une même ligne en les séparant par des virgules ou des points-virgules.
Si vous n’affectez pas une variable pour y stocker le résultat d’une opération, il est stocké dans une variable temporaire nommée ans.
sqrt(-1)
ans = 0.0000 + 1.0000i
Nous voyons donc que MATLAB traite facilement les nombres complexes dans les calculs.