Chapitre 02
Introduction au langage Matlab
1.1 Introduction
MATLAB (abréviation de MATrix LABoratory) est un langage de haute performance. Il intègre calcul,
visualisation (graphiques) et programmation dans un environnement facile à utiliser et où les problèmes et les
solutions sont exprimés en notation mathématique familière en moins de temps requis par les langages de
programmation courant, et ce grâce à une multitude de fonctions intégrées et à plusieurs programmes outils testés
et Regroupés selon usage dans des dossiers appelés boites à outils ou "toolbox".
Comme il est mentionné dans la figures, Au démarrage de MATLAB, l’interface se compose de plusieurs zones :
Figure1- L’interface principale de MATLAB 2013
BOUMAZA F 1
1.2 Présentation de l’interface
Chaque zone possède un objectif précis :
• Le menu regroupe les commandes de base de Matlab comme : Enregistrer, afficher les préférence…etc.
• L’explorateur des fichiers permet de visualiser ses fichiers scripts et de les ouvrir pour les éditer.
• La zone de commande permet d’écrire des commandes et de visualiser leur résultat.
• La zone des variables permet de visualiser toutes les variables en mémoire a l’instant présent (leur nom
ainsi que visualiser leur contenu)
• L’historique permet de visualiser l’historique des commandes précédemment exécutées.
On peut écrire des commandes simples dans Matlab. Cependant, quand on souhaite écrire un programme complet,
on utilise l’éditeur de script MATLAB.
Figure2- L’éditeur de script MATLAB 2013
L’exécution du script (les commandes une après une) se fait à l’aide du bouton Save and Run ou bien, simplement,
en appuyant sur la touche fonction F5. Les résultats sont affichés dans la fenêtre des commandes.
Remarques :
Une ligne de commande peut contenir plusieurs instructions séparées par des virgules (,) ou par des points-virgules
(;). Le résultat d’une instruction suivie par un point-virgule ne sera pas affiché. Le caractère pourcent (%) est utilisé
pour les commentaires.
1.3 Les commandes de base MATLAB
Les Operations de base :
Dans la zone de commande, on peut saisir des commandes, et MATLAB les exécuter comme le ferait une
calculatrice. Par exemple, la commande :
>>5+3
Affiche :
ans=
8
BOUMAZA F 2
Ici, ans (pour answer) est une variable qui contient toujours le résultat de la dernière opération réalisée.
Voici une liste (incomplète) des opérations de base en Matlab
Symbole Description Exemple
+-*/ Les opérations de base en mathématiques (addition, 7+9 , 3/4
soustraction, multiplication et division)
pi La constante Pi pi/3
cos sin tan Les fonctions trigonométriques usuelles cos(3*pi/2)
log exp Le logarithme népérien et l’exponentielle exp(3)
sqrt La racine carrée sqrt(5)
^ La puissance 4^7
On peut combiner ces symboles en une seule commande. Les règles de priorité usuelles entre opérateurs sont
alors appliquées.
Exemple :
>> sqrt((3+4)*cos(5*pi/7))*exp(2^4)
Les nombres réels :
Comme dans tous les langages de programmation, les nombres réels s’écrivent avec un point pour séparer la partie
entière de la partie entière de la partie décimale et non pas une virgule.
>> 2.7*3.9
ans=
10.5300
Les variables (simples) en Matlab :
Comme dans la plupart des langages de programmation (comme le C), il est possible de stocker des valeurs
numériques dans des variables.
Pour déclarer une variable et lui attribuer une valeur, il suffit d’utiliser le symbole égal (=)
>> x=4
Cette commande créé une variable nommée x, et lui attribue la valeur 4.
La variable apparait alors dans la zone des variables :
BOUMAZA F 3
Il est possible d’utiliser des variables à la place de valeurs numériques dans les opérations :
>> y=x+2
Contrairement au langage C ou il est nécessaire de déclarer une variable avant de lui attribuer une valeur, en
Matlab , on attribue directement une valeur à la variable pour la créer
Attention de ne pas confondre entre les deux syntaxes !
Pour afficher la valeur contenu dans une variable, on utilise le mot clef disp, ou bien on peut écrire directement
le nom de la variable :
>> disp(y) >> y
6 y=
6
Fréquemment, on a parlé souvent de « Mots Clefs ». En réalité, le terme exact est « Fonction » : on parlera
désormais de la fonction disp , tout comme les fonctions cos, sin , sqrt ….etc
Pour initialiser une variable avec une valeur entrée au clavier par l’utilisateur, on utilisera la fonction input :
>> x = input('Entrez une valeur : ');
Entrez une valeur : 9
Les matrices dans matlab
Comme son nom l’indique, Matlab est un langage de programmation pensé pour le calcul matriciel, ou il excelle
en terme de performance.
Tout le but d’un programme en Matlab est de faire passer un calcul classique à travers un calcul matriciel pour
que Matlab le réalise très rapidement. Cela s’appelle la vectorisation (nous y reviendrons plus tard).
Nous allons voir maintenant comment Matlab gère les matrices.
Déclarer des matrices dans Matlab
On distinguera plusieurs types de matrices dans Matlab. Tout d’abord, il ya les matrices classiques.
- Pour déclarer une matrice dans une variable A, on énumère entre crochets ses éléments (séparés par des
espaces), et on utilise un point-virgule pour passer d’une ligne a l’autre :
>> A = [1 2 3; 4 5 6; 7 8.5 9; 10 11.5 12]
- D’après le code ci-dessus, la matrice A possède 4 ligne et trois colonnes. On peut vérifier cela dans la
zone des variables
BOUMAZA F 4
- Si on double clique sur la variable dans la zone des variables, son contenu s’affiche.
- On peut aussi utiliser la fonction disp pour afficher une matrice
Exercice :
Ecrivez cette matrice sous forme de tableau
>> B = [4.2 7.6 8.2; 4.1 0.5 0]
La solution :
4.2 7.6 8.2
4.1 0.5 0
Et cette matrice que donne –t-elle ?
>> C = [5.7 0.2 6.2 5.1; 7.1 2.4 8.4; 1.2 0.4 8.4 6.4]
La solution : Une erreur de syntaxe car il n’ya pas le même nombre d’éléments à chaque ligne.
Il ya ensuite les matrices avec une seule ligne ou une seule colonne, que l’on appelle les vecteurs
- Il ya les vecteurs ligne, constitué d’une seule ligne.
>> D = [4 2 9 4 2]
- Il ya les vecteurs colonnes
>> E = [3.5 ; 7; 9; 8; 0]
Accéder aux éléments des matrices
- Pour accéder aux élément d’une matrice, on utilise la syntaxe suivante :
>> A(3,2)
Ici, on accède à l’élément de A qui est la 3°ligne et 2° colonne.
Notez qu’en Matlab, on commence la numérotation des lignes/Colonnes d’une matrice à 1. En C, elles
commencent à 0 (ne confondez pas).
- On peut facilement extraire des sous-matrices d’une matrice à l’aide de cette syntaxe
>> B = A(2:4,4:5)
BOUMAZA F 5
Ici, B sera la matrice constituée des éléments de A aux lignes 2 à 4 et aux colonnes 4 à 5.
On peut aussi récupérer l’intégralité des lignes ou des colonnes d’une matrice dans une sous matrice en laissant
des « deux points » seuls :
>> B = A(2:4,:)
Ici , B sera la matrice constituée des éléments de A aux lignes 2à 4
Taille d’une matrice
La fonction « size » , permet de donner la taille d’une matrice ,
par exemple : si on a la matrice A suivante :
Alors le code : >> s=size (A)
Nous donne le résultat suivant :
Taille d’une matrice
La fonction « numel » renvoie le nombre d’éléments d’une matrice passée en paramètre. Par exemple, si on a la
matrice A suivante :
Alors, on aura :
>> numel(A)
ans =
20
BOUMAZA F 6
Opérations de base sur les matrices :
Matlab propose tout un ensemble d’opérations usuelles sur les matrices
D’autres opérations peuvent être réalisées sur chaque éléments de A
Il est aussi possible d’appeler des fonctions usuelles (sqrt, cos, sin , exp….) sur une matrice , afin qu’elles
s’exécutent sur chaque élément de la matrice.
Par exemple, si on a cette matrice A :
Alors o aura :
On peut calculer la somme des éléments d’une matrice le long des lignes ou des colonnes, avec la fonction sum .
Par exemple, si on a cette matrice A :
Alors sum (A,1) calculera la somme des éléments de A le long des colonnes, tandis que sum (A,2) calculera la
somme le long des lignes :
La fonction prod fait le meme travail, mais en faisant le produit des éléments.
Les fonctions min et max permettent de calculer les éléments maximum ou minimum le long des lignes ou des
colonnes d’une matrice.
Par exemple : si on a cette matrice A :
BOUMAZA F 7
Alors max (A,[],1) calculera les éléments maximaux de A le long des colonnes , tandis que max (A,[],2)
calculera les éléments maximaux le long des lignes :
Filtrage de matrices
- La fonction find permet de trouver les éléments d’une matrice qui respect un certain critère. Cette
fonction renvoie un vecteur colonne qui contient les numéro d’ordre des éléments recherchés.
Par exemple, si on a cette matrice A :
Alors find(A>8) renvoie les numéro d’ordre des tous les éléments de A supérieur à 8 :
Voici les différents critères que l’on peut utiliser :
On peut combiner des critères :
On peut aussi générer une matrice de booléen indiquant si les éléments d’une matrice respectent un certain
critère.
Par exemple, si on a cette matrice A :
BOUMAZA F 8
Si on exécute ce code : >> B=(A<3)
On aura
Un 1 dans B indique que la case correspondante dans A respecte le critère, et un 0 indique qu’elle ne le respecte
pas.
Générer de nouvelles matrices :
Matlab propose des fonctions permettant de générer de nouvelles matrices.
Concaténation de matrices
On peut générer de nouvelles matrices en concaténant d’ancienne matrices. Si l’on a ces matrices :
On peut les concaténer de la même façon que l’on déclare les matrices :
>> D = [A B]
>> E = [A;C]
On aura :
BOUMAZA F 9
Les testes logiques :
Les testes logiques dans MATLAB se font à l’aide des mots clés if, else et end.
Les opérateurs utilisés dans les instructions logiques sont :
< inférieur c = a < b
<= inférieur ou égal c = a <= b
> supérieur c = a > b
>= supérieur ou égal c = a >= b
== égal c = a == b
~= non égal (différent) c = a ~= b
& et c = a & b
| ou c = a | b
~ non c =~a
Les variables a et b peuvent être des scalaires ou des matrices, c prends des valeur 0 ou 1 selon l’expression vraie
ou fausse. Ces opérateurs s’appliquent sur les toutes les composantes dans le cas des matrices.
Exemple de teste if
if a < b % ce script est équivalent à la fonction m =
min(a,b)
m = a
else
m = b
end
Si le teste comprends plusieurs cas à inspecter, il est préférable d’utiliser l’instruction switch avec des case comme
suit :
switch expr % expression ou variable à
examiner
case cas1 % cas 1
instruction1 % commandes à exécuter si
cas1 est vrai
instruction2
...
case cas2 % cas 2
... % commandes à exécuter si
cas2 est vrai
case casn % cas n
...
otherwise % autrement : autres cas
non recensés
instruction
end % fin de switch
BOUMAZA F 10
Exemple :
nne = input(' nombre de noeuds par élément = ');
switch nne
case 3
disp('Elément triangulaire à 3 noeuds')
case 4
disp('Elément quadrilatèral à 4 noeuds')
otherwise
disp('Element non disponible')
end
Les boucles
La structure des boucles dans MATLAB ne diffère pas de celle utilisée dans d’autres langages de programmation.
Il existe principalement deux types de boucles. Une boucle for utilisant un compteur et une boucle while utilisant
une condition
La boucle for
La boucle for fait varier une variable d’une valeur initiale à une valeur finale avec un pas d’incrémentation
constant qui est pris égale à un s’il est omis. Les instructions à l’intérieur de la boucle sont exécutées à
chaque valeur de la variable.
for compteur = valeur_initiale : increment : valeur_finale
instructions
. . . . . . .
End
Généralement, le compteur, la valeur initiale et la valeur finale sont des nombres entiers et l’incrément est égal à
1. Toutefois ce n’est pas une règle, dans certains cas des nombres réels ou même des caractères sont utilisés.
Exemple1. Boucle for calcule le factoriel de nombre n=4
n = 4; % initialisation
nfac = 1;
for k = 1:n % boucle for
nfac = nfac*k;
end
nfac % affichage
Le résultat donne nfact=24
Exemple2. Boucle for utilisant les caractères pour afficher l'alphabet
ch = ''; % initialisation de la chaîne ch
% faire attention à ch = [] ;
for c = 'a':'z' % boucle sur l’alphabet en minuscules
ch = [ch,c]; % concaténation
end
ch % affichage
Enfin, la commande ch=[ch,' ',c]; donne le résultat suivant :
ch = a b c d e f g h i j k l m n o p q r s t u v w x y z
BOUMAZA F 11
La boucle while
La boucle while s’exécute tant qu’une expression logique est vraie. Elle est plus utile lorsque la valeur finale de la
boucle for n’est pas connue à priori. Sa structure est :
Initialisations
while expression logique
Instructions
. . . . . . .
End
Exemple1. Boucle while calcule le factoriel de nombre entre par l'utilisateur :
n = input('Entrez une valeur entière : ');
nfact=1; % initialisation
while n>1 % boucle while
nfact= nfact*a; % calcule le factoriel
n = n-1;
end
disp(nfact); % affichage
Ce programme calcule, dans la variable nfact, le produit de toutes les valeurs entre 1 et n. Il calcul donc la factorielle
de n.
Exemple2. Boucle While pour saisir une valeur positive :
n = input('Entrez une valeur positive : ');
while n<0
n = input('Entrez une valeur positive : ');
end
disp(n);
Ce programme demande une valeur positive à l’utilisateur et il lui casseoles pieds (en redemandant) tant qu’il ne
le fait pas.
Conversion des nombres sous MATLAB :
Le passage de la base décimale a la base binaire se fait par la fonction : « dec2bin » (l’inverse se fait par
« bintodec »).
Exemple 05
>> % convertir le nombre 56 à la base binaire
>> dectobin (56)
Ans =
111000
BOUMAZA F 12
2.4.Affichages des nombres sous matlab :
1- Format standard :
Exemple :
>> 5/6
Ans =
0.8333
2- Format long:
Exemple :
>> format long
>> 5/6
Ans =
0.833333333333333
BOUMAZA F 13