Section : Vecteurs et matrices
Précédent : Construire des matrices
Suivant : Types de données


Opérations

Les opérations numériques s'effectuent en suivant les ordres de priorité classiques (puissance avant multiplication, et multiplication avant addition). Pour éviter les doutes il est toujours prudent de mettre des parenthèses.
2+3*4
(2+3)*4
2^3*4
2^(3*4) 
2^3^4
(2^3)^4
Toutes les opérations sont matricielles. Tenter une opération entre matrices de tailles non compatibles retournera en général un message d'erreur, sauf si une des matrices est un scalaire. Dans ce cas, l'opération (addition, multiplication, puissance) s'appliquera terme à terme.
A=[1,2,3;4,5,6]
A+ones(1,3)     // erreur
A+ones(A)
A+10
A*10
A*ones(A)       // erreur
A*ones(A')
A'*ones(A)
Il n'y a pas d'ambiguïté sur l'addition, mais il est important de pouvoir appliquer des multiplications terme à terme sans qu'elles soient interprétées comme des produits matriciels. Pour cela, le signe (* ou ^) doit être précédé d'un point (.* ou .^). Bien entendu les dimensions doivent être les mêmes pour qu'une opération terme à terme soit possible.
A=[1,2,3;4,5,6]
A*A             // erreur
A*A'
A.*A'           // erreur
A.*A
A=[1,2;3,4]
A^3
A.^3
La division est un cas particulier dangereux. Par défaut, A/B calcule une solution d'un système linéaire. Si v est un vecteur ligne, 1/v retourne un vecteur colonne w tel que v*w=1. Contrairement à ce qui est écrit dans l'aide en ligne, 1./v, compris comme (1.0)/v, retourne la même chose. Il y a plusieurs solutions à ce problème, dont la plus simple consiste à parenthéser : (1)./v.
v=[1,2,3]
w=1/v
v*w
1./v
(1)./v
ones(v)./v
v.^(-1)
v=v'
1/v
1./v
Opérations matricielles
+ - addition, soustraction
* ^ multiplication, puissance (matricielles)
.* .^ multiplication, puissance terme à terme
A\b solution de A*x=b
b/A solution de x*A=b
./ division terme à terme


Section : Vecteurs et matrices
Précédent : Construire des matrices
Suivant : Types de données

© B. Ycart (2001)