Cours de Programmation MATLAB
Cours de Programmation MATLAB
Philosophie de Matlab
➢ Objectifs est d’introduire les outils nécessaires à
l’utilisation de MatLab;
➢ Descriptions des objets manipulés par MatLab
(Matrices);
➢ Apprendre à définir, à afficher et à réaliser des
opérations sur les matrices;
➢ Représentation graphique sous MatLab
➢ Transfère des données entre MatLab et Excel
1
12/03/2026
Versions de MatLab
Date de sortie Nom de la Version Version Introduction
2017 MatLab 9.3 R2017b
2018 MatLab 9.4 R2018a Matlab est un environnement de programmation
2018 MatLab 9.5 R2018b
mathématique de haut niveau.
2019 MatLab 9.6 R2019a
2019 MatLab 9.7 R2019b
2020 MatLab 9.8 R2020a En d'autres termes, Matlab permet de faire des
2020 MatLab 9.9 R2020b calculs, de la visualisation d'informations et de la
2021 MatLab 9.10 R2021a programmation dans un environnement
2021 MatLab 9.11 R2021b mathématique familier.
2022 MatLab 9.12 R2022a
2022 MatLab 9.13 R2022b
2023 MatLab 9.14 R2023a
Janvier 2024 MatLab 23.2 R2023b
Septembre 2024 R2024b
2
12/03/2026
Interface de MatLab
3
12/03/2026
Workspace
Current Directory
Workspace
Command Windows
Command Windows
4
12/03/2026
5
12/03/2026
Principes de la programmation
Principes de la programmation
Il existe deux façons pour écrire un programme sous
MatLab :
1. Écrire instruction par instruction sous la console de la
commande Windows, MATLAB exécute les
instructions au fur et à mesure qu'elles sont
saisies, c’est le mode interactif
2. Utilisé un Éditeur pour écrire un programme Matlab
sous le nom d’un fichier " *.m" (programme en
langage MATLAB). C’est le mode exécutif
Principes de la programmation
6
12/03/2026
Principes de la programmation
• Un programme est une suite d’instructions
• Les instructions contiennent des opérateurs, des
mots-clefs ou des fonctions
• Les instructions doivent respecter la syntaxe (de
Matlab)
• L’unité qui compose les instructions est
l’expression.
• L’expression peut contenir un littéral, une
variable, une fonction (et ses arguments le cas
échéant) ou une combinaison de ceux-ci.
• L’expression évaluée va renvoyer une valeur.
Principes de la programmation
• Séquence d’instructions :
– Pas de mots clefs « début » et « fin »
– Une ligne de commentaires commence toujours par le
caractère %
– Fin d’une instruction :
✓ pas de caractère à la fin d’une ligne mono instruction : une
instruction sera exécutée et le résultat affiché dans la fenêtre
de commandes
✓caractère virgule « , » : utilisé après une instruction pour
séparer les instructions dans une ligne multi instructions; le
résultat sera affiché dans la fenêtre de commandes
✓caractère point-virgule « ; » : utilisé pour supprimer
l’affichage du résultat dans la fenêtre de commandes
7
12/03/2026
8
12/03/2026
Principes de la programmation
Principes de la programmation • Opérations de bases:
➢ quelques Constantes Prédéterminées :
• Opérations de bases:
pi 3.14159265 (Le nombre π)
➢ Nombres:
i unité imaginaire
Les nombres sont représentés sous la forme décimale précédée du signe. Les
j unité imaginaire
nombres imaginaires peuvent aussi bien utiliser j que i comme suffixe. Les
grands nombres décimaux sont représentés en notation scientifique sous la eps Précision du type à virgule flottante
forme AeB pour représenter A*10^B. ans Contient la dernière réponse (Answer/réponse)
Par exemple 3 X 10 ^(-12): realmin Valeur minimale à virgule flottante
>>3e-12 realmax Valeur maximale à virgule flottante
ans = Inf Infini (réponse donnée à une division par zéro) (Le nombre ∞)
Nombre invalide (Not-a-Number, réponse donnée à une division 0/0 ou
3.0000e-012 NaN
Inf-Inf par exemple)
Le nombres ont une précision d'environ 16 chiffres et une valeur absolue
maximale et minimale de 10^-308 et 10^308. ➢Attention : Les noms des constantes ne sont pas réservés donc il est possible de les écraser.
Pour retrouver la valeur initiale d'une constante prédéfinie entrer la commande : clear eps;
Opérateur Description
Inversion (NOT a) : ~a retourne 1 si a est égal 0, 0 si a est égal à 1
Identité (double =) : a = = b retourne 1 si a égale b, 0 autrement
a<b retourne 1 si a est plus petit que b, 0 autrement
a>b retourne 1 si a est plus grand que b, 0 autrement
a <= b retourne 1 si a est plus petit ou égal à b, 0 autrement
a >= b retourne 1 si a est plus grand ou égal à b, 0 autrement
a ~=b retourne 1 si a est différent de b, 0 autrement
9
12/03/2026
Symbole Opérateur
+ Addition
Solution:
- Soustraction a=2
* Multiplication b=4
/ Division (2/3=0.6667) c=a
\ Division par la gauche (2\3 = 1.5)
^ Puissance
a=b
b=c
() Opérateur parenthèse (Spécifie l'ordre d'évaluation)
Exemple de calcul :
>>D=(A+B)^C+A*C/B
10
12/03/2026
11
12/03/2026
condition : expression logique dont le résultat est soit 1 (VRAI) soit 0 (FAUX)
• Interprétation :
» Si condition est évaluée vraie, la séquence d’instructions du corps de la sélection
est exécutée, puis on reprend le programme à l’instruction qui suit la fin de la
sélection (mot-clé end)
12
12/03/2026
13
12/03/2026
14
12/03/2026
15
12/03/2026
Rq :
• Utiliser le point-virgule pour séparer deux instructions sans afficher le résultat
• Utiliser la virgule pour séparer plusieurs instructions sur une même ligne
16
12/03/2026
17
12/03/2026
18
12/03/2026
19
12/03/2026
20
12/03/2026
21
12/03/2026
22
12/03/2026
23
12/03/2026
24
12/03/2026
25
12/03/2026
26
12/03/2026
A A Aij Exemple :
>>A=[1:5]
B B Bij
donne :
A+B A+B Aij+Bij A=
A-B A−B Aij−Bij 12345
A.*B AijBij Il est possible aussi de spécifier un pas différent de 1.
A./B Aij/Bij >>B=[10:-2:-10]
A.^B AijBij ce qui donne :
B=
A.^s Aijs 10 8 6 4 2 0 -2 -4 -6 -8 -10
A*B AB ∑kAikBkj
L'opérateur " : " est aussi applicable à l'accès aux matrices. Il est possible de choisir une
A/B AB−1 partie de la matrice en utilisant, par exemple : A(2 :6,5)
A\B A−1B
afin d'accéder aux éléments 2 ,3, 4, 5 et 6 de la colonne 5 de la matrice A qui sont
A^n An temporairement copiés dans un vecteur de taille 5.
27
12/03/2026
28
12/03/2026
29
12/03/2026
30
12/03/2026
31
12/03/2026
La fonction racine ci dessus est écrite dans un fichier racine.m. Pour Exemple :
l'exécuter, on tape simplement >> sin(pi/12)
>> ans =
>>racine(0,3) 0.16589613269342
Ans=2.0946
32
12/03/2026
Fonctions
Fonctions prédéfinies Pour avoir une liste des fonctions prédéfinies de Matlab taper : help elfun.
Fonctions utiles pour diverses opérations mathématiques Exemples de fonctions : sin(), cos(), sqrt(), abs(), exp().
33
12/03/2026
Solution :
Solution :
a = input('Entrer le coefficient a de x2 : ');
function r=binome(a,b,c) b = input('Entrer le coefficient b de x : ');
delta=b*b-4*a*c; c = input('Entrer le terme indépendant c : ');
if delta >= 0 if a ~= 0
r=[(-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a)]; r = binome(a,b,c);
else else
r=[(-b+i*sqrt(-delta))/(2*a),(-b-i*sqrt(-delta))/(2*a)]; disp(‘Équation est du premier degré ')
end end
Exercice 2: Solution :
Écrire une fonction somme_carres(n ) qui renvoie
le plus grand entier k vérifiant function r=somme_carres(n)
i=0;
S=0;
while S<=n
i=i+1;
S=S+i^2;
end
r=i-1;
34
12/03/2026
Solution :
Exercice 3:
n=input(’Entrez un nombre Entier quelconque :’);
Écrivez un script qui permet de jouer à dichotomie contre
k=randi(n);
l’ordinateur (le script choisit un nombre, et le joueur essaie de le
a=input([’Entrez un nombre compris entre 1 et ’, num2str(n)]);
deviner).
while a~=k
disp(’Vous avez perdu ’);
Indications :
if a>k
disp(’Votre nombre est plus grand’);
– Utilisez la fonction randi(n) qui renvoie un nombre entier
elseif a<k
tiré aléatoirement entre 1 et n pour choisir le nombre ;
disp(’votre nombre est plus petit’);
End
– Utilisez l’instruction a = input(’Entrez un nombre : ’) qui
a=input([’Entrez un nombre compris entre 1 et ’, num2str(n)]);
demande à l’utilisateur d’entrer un nombre et enregistre la
end
valeur dans la variable a.
disp(’Vous avez gagné!!!’);
Les fonctions
MATLAB comporte de nombreuses fonctions qui
créent différents types de matrices:
✓ Création d’une matrice symétrique avec des entrées
basées sur le triangle de Pascal :
>> A=pascal(4)
✓ Création d’une matrice de carré magique asymétrique,
dont les sommes des lignes et des colonnes sont égales
>> A=magic (4)
✓ Création d’une matrice A de n lignes et m colonnes
ayant des éléments entiers génères de manière
aléatoire entre 0 et P
A=randi (P,n,m) exemple
>> A=randi(20,4,3)
35
12/03/2026
36
12/03/2026
Les graphiques
Les graphiques Les Types de graphiques sous MATLAB
✓ Tracés linéaires (Tracés linéaires, logarithmiques et de fonction )
AJOUT DU TEXTE AU GRAPHIQUE:
✓ Tracés de distribution des données (Histogrammes, diagrammes à
title('Titre du graphique') %Donner un titre au graphique secteurs, nuages de mots-clés, etc)
xlabel('Temps') %Étiquette de l'axe x ✓ Tracés de données discrètes (Diagrammes à barres, diagramme de
ylabel('Tension') %Étiquette de l'axe y dispersion, etc )
text(x,y,'Valeur absolue') %Ajouter du texte au graphique ✓ Tracés géographiques (Visualiser des données sur des cartes )
% à la position x,y ✓ Tracés de surface et maillés (Représenter les données maillées sous forme
gtext('Valeur absolue') %Ajouter du texte au graphique de tracés de surface et maillés )
%avec la souris
✓ Courbes polaires (Tracer en utilisant des coordonnées polaires )
grid %Ajouter une grille
✓ Courbes de niveau (Tracés d'isolignes en 2D et 3D )
✓ Visualisation de volumes (Représenter les données de volume maillées
sous forme de diagrammes iso, slice et stream )
✓ Champs vectoriels (Les champs vectoriels permettent de modéliser la
vitesse, la force magnétique, le mouvement de fluides et les gradients)
37
12/03/2026
38
12/03/2026
39
12/03/2026
40
12/03/2026
>> plot(X,Y); surfc Tracé d’une surface en 3D dégradé de couleur et lignes d’iso-
>> subplot(3,1,2); valeurs
surface Terrain de surface primitif
>> …
surfl Tracé de surface avec éclairage basé sur une palette de couleurs
41
12/03/2026
42
12/03/2026
20
15
axe des z
10
0
1
0.5 1
0 0.5
0
-0.5 -0.5
axe des y -1 -1
axe des x
43
12/03/2026
Représentation 1D Exemple::
Représentation 3D
Exemple::
A = randn(1,250); X = [132300 135760 133620 137440];
figure (1) labels = {'2005','2006','2007','2008'};
hist(A); explode = [0 1 0 1 ];
[N,X] = hist(A); subplot(1,2,1);pie3(X,explode);title('CHIFFRES D AFFAIRES ANNUELS')
figure (2) subplot(1,2,2);pie3(X,labels);title('CHIFFRES D AFFAIRES ANNUELS')
pie(N)
Exercice 4:
Écrivez un script qui permet de tracer un histogramme en utilisant: Exercice 4:
• la fonction randn(n) qui génère des nombres aléatoires répartis Solution:
selon une distribution normale ex. n=50000
• avec x varie de – 3.0 à 3.0 par pas de 0.5
x=-3.0 : 0.5 : 3.0; % défini l’intervalle et la largeurs des canaux de l’histogramme
• la commande: hist pour dessiner un histogramme de y et x y=randn(50000,1);
hist(y,x)
44
12/03/2026
Exercice 4: Exercice 5:
Écrivez un script qui permet de tracer un graphisme en 3D en
utilisant la commande plot3:
Solution:
help graph3d
t = linspace(0, 10*pi);
plot3(sin(t), cos(t), t)
xlabel(’sin(t)’), ylabel(’cos(t)’), zlabel(’t’)
grid on
Exercice 5:
Exercice 6:
Écrivez un script qui permet décomposer une fenêtre en sous-
fenêtres et d’afficher une figure différente sur chacune de ces sous-
fenêtres grâce à la commande subplot. La syntaxe est
subplot(m,n,i). En utilisant la fonction fplot et les fonctions cos, sin,
tan, acos, asin, et atan.
Solution:
figure(5)
subplot(2,3,1), fplot(’cos’,[0 4*pi]), title(’cosinus’), grid
subplot(2,3,2), fplot(’sin’,[0 4*pi]), title(’sinus’), grid
subplot(2,3,3), fplot(’tan’,[-pi/3 pi/3]), title(’tangente’), grid
subplot(2,3,4), fplot(’acos’,[-1 1]), title(’arc-cosinus’), grid
subplot(2,3,5), fplot(’asin’,[-1 1]), title(’arc-sinus’), grid
subplot(2,3,6), fplot(’atan’,[-sqrt(3) sqrt(3)]), title(’arc-tangente’), grid
45
12/03/2026
Exercice 6:
Graphe en trois dimensions
Exemple: tracage d’un graphique en secteur en utilisant la fonction pie
46
12/03/2026
47
12/03/2026
48
12/03/2026
49
12/03/2026
50
12/03/2026
fh = @(x,y) x.*exp(-x.^2-y.^2);
ezmesh(fh,40)
colormap([0 0 1])
51
12/03/2026
fh = @(x,y) x.*exp(-x.^2-y.^2);
ezmeshc(fh,40)
colormap([0 0 1])
fh = @(x,y) x.*exp(-x.^2-y.^2);
subplot(121);
ezmesh(fh,40);
title('Fonction ezmesh ');
subplot(122)
ezmeshc(fh,40);
title('Fonction ezmeshc ');
52
12/03/2026
[X,Y,Z] = sphere;
subplot(1,2,1);
mesh(X,Y,Z); title('Fonction mesh ');
subplot(1,2,2);
surf(X,Y,Z); title('Fonction surf ');
53
12/03/2026
a = randn(1,500);
figure(1)
subplot(121)
hist(a)
title('Histogramme')
[N,X] = hist(a);
subplot(122)
pie(N)
title('Graphe en secteurs')
54
12/03/2026
55
12/03/2026
t=linspace(-5,5,1000);
x=(1+t.^2).*sin(20*t);
y=(1+t.^2).*cos(20*t);
z=t;
plot3(x,y,z);
grid on;
56
12/03/2026
57
12/03/2026
58
12/03/2026
59
12/03/2026
60
12/03/2026
Exemple:
t= linspace(1, 3, 40);
for i = 1:40
[X,Y] = meshgrid(-2:.1:2, -2:.1:2);
Z = t(i)*X .* exp(-X.^2 - Y.^2);
surf(X,Y,Z);
I(i) = getframe;
end
xlabel('L axe des X'), ylabel('L axe des Y'), zlabel('L axe des Z'),
title('Fonction surf Anime')
movie(I,10) % Anime l’image 10 fois
61
12/03/2026
Animation Graphique
fonction f(x,y)= sin(X^2+Y^2);
62
12/03/2026
63
12/03/2026
64
12/03/2026
65
12/03/2026
66
12/03/2026
MANIPULATION DE L’IMAGE
MANIPULATION DES IMAGES dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
img = double(imread('[Link]','png'));
4. MODIFICATION DES IMAGES R = img(:,:,1); % Plan Rouge
G = img(:,:,2); % Plan Vert
La syntaxe N = cat(dim, R, G, B) sous MATLAB est utilisée pour B = img(:,:,3); % Plan Bleu
concaténer les matrices R (rouge), G (vert), et B (bleu) le long de la subplot(3, 2, 1);
dimension spécifiée dim. Pour créer une image couleur RGB (trois imshow(uint8(img));
title ( "RGB" );
plans), on utilise généralement N = cat(3, R, G, B), où 3 indique la subplot(3, 2, 2);
concaténation dans la troisième dimension. N = cat(3, R,B,G );
Détails de la syntaxe : imshow(uint8(N)); title ( "RBG" );
subplot(3, 2, 3);
➢ cat : Fonction de concaténation (concatenate).
N = cat(3, G,R,B );
➢ dim : La dimension le long de laquelle concaténer. imshow(uint8(N)); title ( "GRB" );
1 : Verticalement (lignes). subplot(3, 2, 4);
N = cat(3, G,B,R );
2 : Horizontalement (colonnes).
imshow(uint8(N)); title ( "GBR" );
3 : Pour créer des plans (couleur/profondeur). subplot(3, 2, 5);
➢ R, G, B : Les matrices (images) à combiner. Elles doivent avoir N = cat(3, B,G,R );
imshow(uint8(N)); title ( "BGR" );
les mêmes dimensions (lignes et colonnes). subplot(3, 2, 6);
➢ N : La nouvelle image RGB résultante. N = cat(3, B,R,G );
imshow(uint8(N)); title ( "BRG" );
67
12/03/2026
68
12/03/2026
MANIPULATION DE L’IMAGE
MANIPULATION DES IMAGES
5. RECADREMENT DES IMAGES
Dans MatLab la fonction imcrop permet d’encadrer une
image
Exemple :
dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
I= imread('[Link]');
I2 = imcrop(I,[118 280 518 138]);
subplot(1,2,1)
imshow(I)
title('Image IAVH')
subplot(1,2,2)
imshow(I2)
title('Image IAVH Recadrer')
69
12/03/2026
70