Un opérateur est un symbole qui permet d’effectuer un calcul spécifique ou une manipulation logique sous MATLAB.
Il faut bien noter que MATLAB a été conçu pour effectuer des calculs sur des matrices et des tableaux, partant de ce principe, les opérateurs sous MATLAB sont utilisés à la fois sur des données scalaires et non-scalaires.
Il existe plusieurs types d’opérateurs.
Opérateurs arithmétiques
On distingue deux types d’opérateurs arithmétiques : des opérateurs arithmétiques sur des matrices et des opérateurs arithmétiques sur des tableaux. Ils sont différentiés par le (.) placé devant l’opérateur, sauf l’addition et la soustraction dont l'opérateur est la même pour les deux types.
Le tableau ci-après regroupe les opérateurs arithmétiques les plus utilisés :
Opérateur |
Description |
+ |
Addition ou opérateur unaire plus. A+B additionne A et B. Il faut noter que A et B doivent avoir la même dimension. Un nombre scalaire peut être ajouté à une matrice de n’importe quelle dimension. |
- |
Soustraction ou opérateur unaire moins. A-B soustrait B de A. Il faut noter que A et B doivent avoir la même dimension. Un nombre scalaire peut être soustrait à une matrice de n’importe quelle dimension. |
* |
Multiplication de matrices. C = A*B, effectue un produit algébrique linéaire de A et B, puis stocke le résultat dans C. Il faut noter que A et B doivent avoir la même dimensions ; à une exception près, car le produit est aussi possible si le nombre de colonnes de A est égal au nombre de lignes de B. Par ailleurs un nombre scalaire peut être multiplié à une matrice de n’importe quelle dimension. |
.* |
Multiplication de deux tableaux, ou multiplication éléments par éléments. A.*B, effectue une multiplication élément par élément de A et B. A et B doivent être de même dimension. |
/ |
Division à droite. A/B est l’équivalent de A*inv(B). Ou inv() calcule l’inverse de B. |
./ |
Division de tableaux, ou division éléments par éléments. Il faut noter que A et B doivent être de même dimension. |
\ |
Division à gauche. A\B est l’ équivalent de inv(A)*B. A et B doifent être de même dimension |
.\ |
Division de tableaux, ou division élément par élément à gauche. Il faut noter que A et B doivent être de même dimension. |
^ |
Calcul de puissances matricielle au sens algébrique. X^p, calcule la puissance p de X. p est un nombre scalaire. Si p est négatif, l’inverse de X est d’abord calculé. |
.^ |
Calcul de puissances matricielle éléments par éléments. X.^p, calcule la puissance p de chaque élément de X. p est un nombre scalaire. |
‘ |
Transpose une matrice de dimension donnée. A’ calcule la transposée algébrique de A |
.’ |
Transposition élément par élément |
Exemples :
>> A = 10 ;
>> B = 25 ;
>> C = A + B
C =
35
>> P = A * B
P =
250
>> M = A/B
M =
0.4000
>> Q = A\B
Q =
2.5000
Opérateurs de comparaison
Ils peuvent être utilisés pour des nombres scalaires ou non scalaires. La comparaison se fait élément par élément. Une comparaison entre deux tableaux donne en résultat un tableau logique de même dimension dont les valeurs sont 1 lorsque la comparaison entre deux éléments est vraie et 0 lorsqu’elle est fausse.
Le tableau ci-après donne les opérateurs de comparaison utilisés sous MATLAB :
Opérateur |
Description |
< |
Inférieur à |
<= |
Inférieur ou égal à |
> |
Plus grand que |
>= |
Plus grand ou égal que |
== |
Egal à |
~= |
Différent de |
Exemple :
>> P = 200 ;
>> Q = 150 ;
>> P == Q
ans =
0
>> P > Q
ans =
1
Opérateurs logiques
On distingue deux types d’opérateurs logiques :
Des opérateurs élément par élément sur des tableaux logiques, dont les symboles sont : &, | , ~ pour la fonction ET, OU et NON ;
Des opérateurs logiques sur des expressions scalaires logiques, dont les symboles sont : &&, ||, pour la fonction ET, et la fonction OU.
Exemple :
>> A = [0 1 1 0 1] ;
>> B = [1 1 0 0 1] ;
>> A & B
ans =
0 1 0 0 1
>> A | B
ans =
1 1 1 0 1
>> ~A
ans =
1 0 0 1 0
Les fonctions prédéfinies MATLAB peuvent être utilisées à la place des opérateurs logiques ; par exemple :
and(A, B) est équivalent à A & B ;
or(A, B) est équivalent à A | B ;
not (A) est équivalent à ~A
L’opérateur OU exclusif admet pour fonction xor() ;
Si on effectue des comparaisons sur des matrices, les deux opérandes devront avoir la même dimension.
Opérateurs sur des bits
Ils permettent d’effectuer des opérations sur des éléments binaires. On a les opérateurs &, |, ^ pour les fonctions ET, OU et OU exclusif, illustrés par la table de vérité ci-dessous :
P |
Q |
P & Q |
P | Q |
P ^ Q |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
Les fonctions prédéfinies MATLAB permettent aussi d’effectuer des opérations sur des bits. Parmi les plus courantes on a :
bitand (p, q) qui effectue un ET entre p et q ;
bitcmp (p) donne le complément de p ;
bitget(p, pos) récupère un bit sur une position spécifiée dans un tableau p ;
bitor (p, q) donne le OU logique entre p et q ;
bitset(p, pos) met à « 1 » un bit situé à une position spécifique pos dans le tableau p ;
bitshift(p, k) effectue un décalage à gauche de k bits ; c’est l’équivalent d’un multiplication par 2k. Si k est négatif, le décalage se fera vers la droite ; ce sera dans ce cas l’équivalent d’une division par 2|k| ;
bitxor(p, q) effectue un OU exclusif de p et de q ;
swapbytes inverse l’ordre d’un octet.