0% ont trouvé ce document utile (0 vote)
5 vues70 pages

Cours de Programmation MATLAB

Le document présente une introduction à MATLAB, y compris ses objectifs, son historique et ses versions. Il décrit les principes de base de la programmation MATLAB, les types de données, les opérations et les commandes essentielles. MATLAB est un environnement de programmation mathématique utilisé dans divers domaines tels que l'ingénierie, la finance et la physique.

Transféré par

aymanchninif204
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues70 pages

Cours de Programmation MATLAB

Le document présente une introduction à MATLAB, y compris ses objectifs, son historique et ses versions. Il décrit les principes de base de la programmation MATLAB, les types de données, les opérations et les commandes essentielles. MATLAB est un environnement de programmation mathématique utilisé dans divers domaines tels que l'ingénierie, la finance et la physique.

Transféré par

aymanchninif204
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

12/03/2026

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

Historique de MatLab Versions de MatLab


Date de sortie Nom de la Version Version
1977 : Cleve Moler professeur de mathématiques à 1984 MATLAB 1
l’université du Nouveau-Mexique et à l’université 1986 MatLab 2
Stanford a conçu à partir des bibliothèques 1987 MatLab 3
Fortran, LINPACK et EISPACK2. 1992 MatLab 4
1984 : Jack Little, Cleve Moler et Steve Bangert ont Déc -1996 MatLab 5 R8
développé Matlab en Langage C pour les étudiants Nov 2000 MatLab 6 R12
en technologie, en particulier en traitement du Sept 2005 MatLab 7 R14
signal et ont créé la société The MathWorks Mars 2012 MatLab 8 R2012a
2005 : MATLAB a ensuite évolué, en intégrant la Mars 2013 MatLab 8.1 R2013a
bibliothèque LAPACK, en se dotant de Mars 2014 MatLab 8.3 R2014a
nombreuses boîtes à outils (Toolbox) ainsi que Mars 2015 MatLab 8.5 R2015a
les possibilités données par d’autres langages de Mars 2016 MatLab 9 R2016a
programmation comme C++ ou Java. Mars 2017 MatLab 9.2 R2017a

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

Notion de Base de MATLAB Domaines d'utilisation


L'élément de base en Matlab est la matrice. Matlab est un outil très populaire dans les
domaines suivant :
Le terme MATLAB vient de MATrix LABoratory. Au départ, •l’ingénierie
il s’agissait uniquement d’une collection de routines pour
la manipulation des matrices. •les finances

Aujourd’hui, Matlab est aussi un outil interactif ainsi •la physique


qu’un environnement de programmation puissant.
•les mathématiques
•étc.

2
12/03/2026

Le système Matlab Environnement de


On peut découper le système Matlab en cinq parties :
Développement Matlab
1. Environnement de développement ou Interface
• Lancement
MatLab (peut changer légèrement selon la version
• Répertoire courant
utilisée)
• Ligne de commande (langage interprété)
2. Librairies de fonctions
• Fichiers programme (.m)
3. Langage Matlab
4. Graphiques
• Fichiers de données (.mat)
5. API Matlab (application programming interface)
• L’aide et les démos
Programming and Data Types

Interface de MatLab

3
12/03/2026

Interface de MatLab Interface de MatLab

COMMANDES DE BASE COMMANDES DE BASE


Lancer Matlab, en utilisant le menu démarrer. Selon les versions Lancer Matlab, en utilisant le menu démarrer. Selon les versions
du logiciel, on obtient l’un des deux fenêtres de commande du logiciel, on obtient l’un des deux fenêtres de commande
suivantes: suivantes:
Current Directory

Workspace
Current Directory
Workspace
Command Windows

Command Windows

4
12/03/2026

COMMANDES DE BASE COMMANDES DE BASE

COMMANDES DE BASE COMMANDES DE BASE


Il existe quatre menus déroulants : Command Window : Cette fenêtre permet d'entrer des
➢ File : le menu fichier permet notamment d’accéder à des commandes Matlab, démarrer des fonctions et d'utiliser
fichiers déjà existants ou de créer de nouvelles procédures et des fichiers M.
des nouveaux programmes. Il permet aussi de quitter Command History : Contient toutes les commandes qui ont été exécutées.
Matlab. Les derniers programmes ouverts sont en outre Il devient donc facile par la suite de trouver des erreurs
indiqués. dans l'exécution des commandes.

Workspace : Permet de visualiser toutes les variables qui ont été


➢ Edit : le menu édition permet d’accéder aux commandes
initialisées jusqu'à maintenant. Pour y accéder il suffit
classiques : copier, couper, coller, sélectionner tout, etc. de cliquer sur l'onglet Workspace. Ce menu permet aussi
de modifier les valeurs des variables en double cliquant
➢ Window : le menu Fenêtre donne accès aux différentes sur celles-ci.
fenêtres de Matlab ouvertes.
Current Directory : Fenêtre permettant de changer le dossier actuel et de
➢ Web : spécifique à Matlab 6.1 démarrer un fichier quelconque avec l'outil approprié.
Par exemple, si on double clique sur un fichier M il
s'exécutera aussitôt.
➢ Help : c’est le menu d’aide.

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

Notion de Variable Notion de Variable


• Types de données et variables
Comme tout langage de programmation MATLAB permet de définir
• Les 4 types de données MATLAB
des données variables. Les types de variables utilisés par MATLAB sont :
Une variable est désignée par un identificateur qui est formé d'une ➢ réel,
combinaison de lettres et de chiffres.
➢ complexe,
Attention:
➢ MATLAB fait la différence entre les minuscules et les majuscules. ➢ chaîne de caractères
➢ Les noms de variables peuvent avoir une longueur de 31 caractères . ➢ logique (est associé au résultat de certaines fonctions)
➢ Les noms de variables doivent commencer par une lettre.
Toute variable est considérée comme étant un tableau d’éléments. Par exemple
MATLAB différencie trois formes particulières de tableaux:
➢ Les scalaires qui sont des tableaux à une ligne et une colonne.
x = 2; % variable x de type réel
➢ Les vecteurs qui sont des tableaux à une ligne ou à une colonne. z = 2+i; % variable z de type complexe
➢ Les matrices qui sont des tableaux ayant plusieurs lignes et colonnes. rep = 'oui’; % variable rep de type chaîne de caractères

Principes de la programmation Principes de la programmation


• Séquence d’instructions Exemple : • Opérations de bases:
➢ Séquence d’instructions avec affichage du résultat dans la fenêtre de ➢ Variables
commande Pour initialiser une variable utiliser la syntaxe suivante :
a=1
b=2 >>B=2
c=a+b Ce qui donne comme réponse de Matlab :

➢ Ligne multi instructions et affichage du résultat B=


a=1, b=2, c=a+b 2

➢ Non affichage du résultat


N.B. Si on ne veut pas afficher la réponse, il suffit d'ajouter " ; " à la fin de la
a=1; b=2; c=a+b; commande. Cette variable sera stockée dans Matlab sous la forme d'une matrice 1
ou X 1. Matlab permet un maximum de 31 caractères pour le nom d'une variable. Dans
a=1; le cas où la réponse n'est pas assignée à une variable, elle sera stockée dans la
b=2; variable ans.
c=a+b;

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;

Quelques Notes sur MATLAB


Opérateurs relationnels

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

Quelques Notes sur MATLAB Opérateurs logiques: Tables de vérité


ET logique (AND) & OU logique (OR) |
C1 C2 C1 ET C2 C1 C2 C1 OU C2
•Opérateurs logiques :
VRAI VRAI VRAI
VRAI VRAI VRAI
VRAI FAUX FAUX VRAI FAUX VRAI
Opérateur Symbole
FAUX VRAI FAUX FAUX VRAI VRAI
ET logique (AND) & FAUX FAUX FAUX
FAUX FAUX FAUX
OU logique (OR) |
Ou exclusif xor NON logique ~
NON logique ~
C1 C2 C1 XOR C2 C1 NON C1
Ou exclusif xor VRAI FAUX
VRAI VRAI FAUX
VRAI FAUX VRAI FAUX VRAI
FAUX VRAI VRAI
FAUX FAUX FAUX

Quelques Notes sur MATLAB Exercices simples sur l'affectation


Ecrire un scripte permettant d’échanger les
•Principaux Opérateurs
valeurs de deux variables A et B
:

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

Affichage simple des données


➢disp(A) : afficher le contenu d’un tableau A de valeurs
numériques ou de caractères (texte) sans écrire le nom
de la variable
toutes les valeurs du tableau doivent être du
même format (soit du texte soit des valeurs
numériques)
➢ num2str(A) : convertir les données numériques
contenues dans le tableau A en une chaîne de
caractères.
➢str2num(A) : conversion d’une chaine de caractère en
valeur numérique

Lecture simple des données Lecture simple des données


➢ input(‘texte’) : demander à l’utilisateur de saisir des Exercice: Ecrire un scripte Matlab qui permet de:
données numériques à la suite d’une message ‘texte’ qui • saisir la longueur et la largeur d’un terrain sous forme d’un rectangle
s’affiche à l’écran • calculer la surface, le périmètre et le coût du terrain en Dh .
o retourne les données saisies dans la variable var L = input('Saisir la longueur du rectangle : ');
o fin de la saisie : retour chariot l = input('Saisir la largeur du rectangle : ');
c = input('le coût du mètre carrée du rectangle en Dh : ');
➢ input(‘texte’,’s’) : demande à l’utilisateur de saisir des % calcule de la surface du rectangle
données texte (chaîne de caractères)à la suite d’une s = L*l;
disp(['la surface du rectangle = ', num2str(s)]);
message ‘texte’ qui s’affiche à l’écran
% calcule du périmètre du rectangle
p = (L+l)*2;
disp(['le périmètre du rectangle = ', num2str(p)]);
% calcule du coût du rectangle en Dh
prix=s*c;
disp(['le coût en Dh du rectangle = ', num2str(prix)]);

11
12/03/2026

Les Instructions de contrôle


Principales instructions de contrôle :
➢ instructions sélectives: IF … ELSE … ELSEIF …
➢ choix ventilés et multiple: SWITCH … CASE … OTHERWISE …
➢ instructions répétitives: WHILE et FOR (boucles)
➢ passage à l’itération suivante : CONTINUE
➢ arrêt de l’exécution d’une boucle : BREAK
➢ retour au programme appelant (ou au clavier) : RETURN

Autres commandes utiles :


➢ Instruction ERROR
➢ Instruction WARNING
➢ Instruction PAUSE

Les Instructions de contrôle Les Instructions de Contrôle


L’instruction sélective IF :
Corps de la sélection :
» Exécuter un ensemble d’instructions seulement dans le cas où
une condition donnée est vérifiée au préalable

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)

» Si condition est évaluée fausse, les instructions du corps de la sélection sont


ignorées et on exécute l’instruction qui suit la fin de la sélection (mot-clé end)

12
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


L’instruction alternative IF … ELSE :
Corps de la sélection : » Exécuter un ensemble d’instructions dans le cas où une condition donnée
Exemple 1 : expression logique scalaire est vérifiée au préalable
» L’instruction ELSE propose une alternative à la condition
a = 4;
b = 2;
if a>b %si a est strictement plus grand que b alors
diff = a-b; %calculer la différence a-b
disp(‘a plus grand que b’); %afficher un message
disp([‘la différence est a-b = ‘,num2str(diff)]); %afficher la différence
end %fin de la sélection
disp(‘fin de la sélection’)
condition : expression logique dont le résultat est soit 1 (VRAI) soit 0 (FAUX)
• Interprétation :
Exemple 2 : ligne multi instructions » Si condition est évaluée vraie, la séquence d’instructions 1 est exécutée,
a=4, b=2 puis on reprend le programme à l’instruction qui suit la fin de la sélection
if b && a %si b et a sont non nuls alors afficher un message et calculer a/b (mot-clé end)
» Si condition est évaluée fausse, la séquence d’instructions 2 est exécutée
disp(‘b est non nul’),
puis on reprend le programme à l’instruction qui suit la fin de la sélection
c= a/b, (mot-clé end)
end
disp(‘fin de la sélection’)

Les Instructions de Contrôle Les Instructions de Contrôle


. Instruction Sélective If …. Else Exemple 1:
. Instruction Sélective If …. Else
• Exemple 2 :
Exemple 1: A = [1 6; 9 32]; B = [2 3; 3 4];
a = input(‘Saisir le numérateur : ‘);
b = input(‘Saisir le dénominateur : ‘);
if B %Si tous les éléments de B sont non nuls alors faire la division de A par B

if b %Si b est non nul alors faire la division de a par b


A./B
else %Si un des éléments de B est nul, afficher les indices des éléments nuls de B
d = a/b;
[i,j]=find(B==0);
disp([‘résultat de la division = ‘, num2str(d)]);
else disp(['indices des éléments nuls de B = ', num2str([i,j])]);
end
disp(‘division par zéro !’);
end
N.B :Une matrice comportant au moins un élément 0 (logiquement faux) donnera le
résultat « tableau vide ».

13
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


. Instruction Sélective If …. Else Exemple 1:
La sélection alternative imbriquée IF … ELSEIF … ELSE :
» Sélection en cascade
• Exemple 2 :
A=input('Saisir la 1 ère matrice A = ');
B=input('Saisir la 2 ème matrice B = ');
if B %Si tous les éléments de B sont non nuls alors faire la division de A par B
A./B %Afficher le résultat
else %Si l’un des éléments de B est nul, afficher les indices
[i,j]=find(B==0);
disp(['indices des éléments nuls de B = ', num2str([i,j])]) condition 1 et condition 2 : expressions logiques dont le résultat est soit 1 (VRAI) soit 0 (FAUX)
end • Interprétation :
» Si condition 1 est évaluée vraie, la séquence d’instructions 1 est exécutée
N.B :Une matrice comportant au moins un élément 0 (logiquement faux) donnera le » Si condition 1 est évaluée fausse et que la condition 2 est évaluée vraie, la
résultat « tableau vide ». séquence d’instructions 2 est exécutée
» Si condition 1 et condition 2 sont évaluées fausses, la séquence
d’instructions 3 est exécutée
» Une fois la sélection effectuée, on reprend le programme à l’instruction qui
suit la fin de la sélection (mot-clé end)

Les Instructions de Contrôle Les Instructions de Contrôle


Exemple 1 : comparer deux mots Exercice 1
Calculer le plus grand de 3 nombres
A = input(‘Saisir le premier mot : ‘,’s’); Méthode :
B = input(‘Saisir le deuxième mot : ’,’s’); o comparer les deux premiers nombres et définir le plus grand des deux
o comparer ce nombre avec le troisième nombre
if strcmp(A,B)
disp(‘même mot’) %Calculer le plus grand de trois nombres
elseif strcmpi(A,B) T = input('Entrer les trois nombres :','s') ;
disp(‘même mot avec des majuscules’) T = str2num(T) ;
else disp(‘mots différents’) A = T(1) ;
B = T(2) ;
end C = T(3) ;
• Exemple 2 : if A>B %comparer les deux premiers nombres
n = 8; G=A;
if n<0 else
disp(‘le nombre doit être positif’); G=B;
end
elseif rem(n,2)==0 if C>G %comparer avec le troisième nombre
A = n/2; G=C;
else A=(n+1)/2; end
end, disp([‘résultat = ‘,num2str(A)]) disp(['Le plus grand nombre est : ',num2str(G)]) ;

14
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


Exercice 1 :
Calculer le plus grand de 3 nombres instruction Sélective à choix multiple switch: ( Selon Var faire)
Méthode : Le choix ventilé SWITCH :
o comparer les deux premiers nombres et définir le plus grand des deux
o comparer ce nombre et le troisième nombre
» Exécute un ensemble d’instructions basées sur la valeur d’une variable ou
d’une expression
» Alternative à la sélection en cascade
%Calculer le plus grand de trois nombres
A = input('Entrer le premier nombre :');
B = input('Entrer le deuxième nombre :');
C = input('Entrer le troisième nombre :');
if A>B %comparer les deux premiers nombres
G=A;
else
G=B;
end
if C>G %comparer avec le troisième nombre
G=C; var : expression ou variable à évaluer
end c1, …, cN : constantes d’évaluation de type numérique ou chaîne de
disp(['Le plus grand nombre est : ',num2str(G)]); caractères
séquence d’instructions i : séquence d’instructions à exécuter si var == ci

Les Instructions de Contrôle Les Instructions de Contrôle


Interprétation de l’instruction sélective SWITCH:
Instruction Sélective à choix multiple switch:
Séquence d’instructions commune dans plusieurs cas
– Comparer l’expression var avec chaque valeur suivant case :
» Pour différents cas, la même séquence d’instructions est exécutée ➢ La variable var doit être du même type que les constantes
» Simplifier l’écriture d’évaluation c1 , …, cN
➢ Pour une variable de type numérique, on évalue pour chaque cas i
l’expression logique var == c i
➢ Pour une variable de type chaîne de caractères, on évalue pour
chaque cas i l’expression logique strcmp(c i , var)

– Si la variable var est égale à l’une des constantes c1, …, cN alors la


séquence d’instructions correspondante est exécutée, puis le programme
reprend ensuite à la première instruction suivant le mot clé end
– Ordre d’évaluation :
➢ les différents cas sont évalués successivement du premier au dernier
tant que l’évaluation n’est pas logiquement vraie
➢ dès qu’un cas est vérifié, on sort du choix en cascade : les cas
suivants ne sont pas évalués (à la différence de l’instruction switch
en langage C)

15
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


Interprétation de l’instruction sélective SWITCH: Instruction Sélective à choix multiple switch
– L’instruction otherwise est optionnelle :
Exemple 1 : signe de la différence de deux nombres
» Si la variable var n’est égale à aucune des constantes, la séquence a = input(‘Saisir le premier nombre : ’);
d’instructions par défaut est exécutée. b = input(‘Saisir le deuxième nombre : ’);
diff = a-b;
» Si l’instruction otherwise est omise, alors les instructions du corps
signe = sign(diff); %signe de la différence a-b
de la sélection sont ignorées et on exécute l’instruction qui suit la fin
switch signe
de la sélection (mot-clé end)
case -1
disp(‘différence négative’)
case 0
disp(‘différence nulle’)
case 1
disp(‘différence positive’)
end

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

Les Instructions de Contrôle Les Instructions de Contrôle


Instruction Sélective à choix multiple switch Instruction Sélective à choix multiple switch

Exercice: n = input(‘Saisir le nombre compris entre 0 et 9 ’);


switch n
Ecrire un programme qui lit un chiffre entier compris entre case 0 , disp(‘Zéro’)
0 et 9 et qui l’affiche en lettre; case 1 , disp(‘Un’)
Travail demander : Case 2 , disp(‘Deux’)
Case 3 ,disp(‘Trois’)
✓ Travail à faire : Lecture d’un chiffre compris entre 0 et 9 case 4 , disp(‘Quatre’)
✓ Résultat : Afficher le chiffre en lettre case 5 , disp(‘Cinq’)
✓ Solution : utiliser la Sélection multiple case 6 , disp(‘Six’)
case 7 , disp(‘Sept’)
case 8 , disp(‘Huit’)
case 9 , disp(‘Neuf’)
otherwise disp('Erreur de Saisie !')
end

16
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


Exercice : Écrire un script pour réaliser les opérations d’une calculatrice Exercice : Écrire un script pour réaliser les opérations d’une calculatrice
simple ( + , *,^, - et /) en utilisant les instructions if else if …….etc simple ( + , *, - et /) en utilisant l’ instruction Sélective à choix multiple switch
a = input('Saisir le premier nombre a = '); a = input('Saisir le premier nombre a = ');
b = input('Saisir le deuxieme nombre b = '); b = input('Saisir le deuxieme nombre b = ');
op = input('Saisir l operation souhaite (+ ou * ou – ou /) ? : ','s'); op = input('Saisir l operation souhaite (+ ou * ou – ou / ou ^) ? : ','s');
if op == '+‘ switch op
disp(['afficher la somme des nombres a + b = ', num2str(a+b)]); case '+'
else if op == '-‘ disp(['afficher la somme des nombres a + b = ', num2str(a+b)]);
disp(['afficher la soustraction des nombres a - b = ', num2str(a-b)]); case '-'
else if op == '*‘ disp(['afficher la soustraction des nombres a - b = ', num2str(a-b)]);
disp(['afficher la multiplication des nombres a * b = ', num2str(a*b)]); case '*'
else if op == '/‘ disp(['afficher la multiplication des nombres a * b = ', num2str(a*b)]);
disp(['afficher la division des nombres a / b = ', num2str(a/b)]); case '/'
else disp('Erreur de saisie de l operateur '); disp(['afficher la division des nombres a / b = ', num2str(a/b)]);
end case ‘^'
end disp(['afficher la puissance des nombres a ^ b = ', num2str(a^b)]);
end otherwise
end disp('Erreur de saisie de l operateur ');
end

Les Instructions de Contrôle Les Instructions de Contrôle


Instruction Sélective à choix multiple switch Instruction répétitive FOR:
Exemple 2 : comparer un mot
mot = ‘else’; La boucle FOR :
Switch mot » Boucle pour les valeurs d’un indice, incrémenté à chaque itération, variant
case ‘if’ entre deux bornes données
disp(‘instruction sélective’)
case ‘else’
disp(‘instruction alternative’)
case ‘elseif’
disp(‘sélection en cascade’)
case ‘switch’
disp(‘choix ventilés’)
End

• Exemple 3 : séquence d’instructions communes


var = 2;
Switch var
case 1
disp(‘cas 1’)
case {2, 3, 4} i = variable appelée indice de la boucle
disp(‘cas 2, 3 ou 4’)
case 5
borneinf et bornesup = constantes réelles appelées paramètres de la boucle
disp(‘cas 5’)
otherwise
Pour i allant de 1 à n
disp(‘autres cas’)
puiss← puiss*x
end FinPour

17
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


Interprétation de l’instruction répétitive FOR :
– Si borneinf < bornesup : la séquence d’instructions est exécutée autant de fois pour les valeurs
de la variable indice i prenant successivement les valeurs borneinf, borneinf+1, …, bornesup Instruction répétitive FOR :
– Si borneinf > bornesup : la séquence d’instructions du corps de la boucle n’est pas exécutée et Exemple 1 : incrément négatif
on exécute l’instruction qui suit la fin de la boucle (mot- clé end)
– Incrément ou « pas » de la boucle : for r = 1.1:-0.1:0.75 %décrémenter l’indice r de 1.1 à 0.75 avec un
» par défaut la valeur entière 1 disp([‘indice r = ‘,num2str(r)]); %pas négatif de -0.1
» incrément autre que 1 : pas nécessairement un entier
end
syntaxe : i = borneinf : pas : bornesup
» incrément négatif : possibilité d’avoir borneinf > bornesup
– Indice de la boucle :
» possibilité d’utiliser un tableau d’indices :
syntaxe : i = I
» l’indice n’apparaît pas nécessairement dans le corps de la boucle
» si l’indice apparaît dans le corps de la boucle, interdiction de modifier sa valeur : la
modification effectuée dans le corps de la boucle ne sera pas prise en compte
– Possibilité d’imbriquer des boucles

Les Instructions de Contrôle Les Instructions de Contrôle


Exercice 2 La boucle WHILE (tant que)
Calculer le plus grand de 3 nombres » Répéter une boucle tant qu’une condition reste vérifiée
Méthode :
» Arrêt de la boucle dès que cette condition n’est plus vérifiée
o comparer les deux premiers nombres et définir le plus grand des deux
o comparer ce nombre et le troisième nombre

%Calculer le plus grand de trois nombres


T = input('Entrer les trois nombres :','s') ;
T = str2num(T) ;
G = T(1) ; %initialiser G au premier nombre
for i=2:3
if T(i)>G %comparer G avec chaque nombre suivant condition = expression logique dont le résultat est soit 1 (VRAI) soit 0 (FAUX)
G = T(i) ; séquence d’instructions = ensemble d’instructions à effectuer tant que
end l’expression condition est logiquement vraie
end
TantQue (som <=100)
disp(['Le plus grand nombre est : ',num2str(G)]);
som ← som + i
i ← i+1
FinTantQue

18
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


Instruction Répétitive WHILE Instruction Répétitive WHILE
Interprétation : Exemple : demander à l’utilisateur de saisir un texte
➢ Tant que l’expression condition est logiquement vraie, la » instructions répétitives nécessitant l’utilisation de l’instruction
séquence d’instructions du corps de la boucle est répétée sous répétitive WHILE
forme d’une boucle lent=0; %pas de texte saisi
while lent==0 %tant que le texte n’est pas saisi faire
➢ Lorsque l’expression condition devient logiquement fausse, on texte = input(‘Saisir un texte :’,’s’); %demander de saisir un texte
sort de la boucle et on exécute l’instruction qui suit la fin de la lent=length(texte); %évaluer la longueur du texte
boucle (mot-clé end) End
➢ Boucles finies :
» Le traitement de la séquence d’instructions du corps de la
boucle doit impérativement agir sur le résultat de l’expression
logique condition
» Si l’expression condition reste logiquement vraie à chaque
itération, on boucle indéfiniment

Instruction Répétitive WHILE Choix d’une Instruction de contrôle:


Exercice : Écrire Un programme qui détermine la somme des ✓ Si on peut déterminer le nombre d'itérations
nombres 1 à N tel que la somme dépasse 100 en utilisant la
boucle while avant l'exécution de la boucle, il faut utiliser
l’instruction de contrôle For
i=0
som = 0
while som <=100 ✓ S'il n'est pas possible de déterminer le nombre
i = i+1
som = som+i d'itérations ni l’indice de départ ni le pas
End avant l'exécution de la boucle, il faut utiliser
Disp([' La valeur cherchée est N= ',num2str(i)]) l’instruction de contrôle while

19
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


L’instruction CONTINUE : L’instruction CONTINUE :
» Donne le contrôle à l’itération suivante dans une boucle Exemple :
FOR ou WHILE for i=0:10
» Dans le cas d’une boucle imbriquée, donne le contrôle à if i == 5
l’itération suivante de la boucle qui la contient disp('Instruction Continue')
continue
» Ignore toutes les instructions du corps de la boucle qui end
suivent l’instruction CONTINUE disp(['La valeur de I = ', num2str(i)])
end
disp('Fin de la boucle ')
• Syntaxe :
continue

Les Instructions de Contrôle Les Instructions de Contrôle


L’instruction BREAK : L’instruction BREAK :
» Provoque la sortie prématurée d’une boucle Exemple :
» Dès que l’instruction BREAK est rencontrée, la boucle FOR
ou WHILE qui la contient est interrompue sans exécuter les for i=1:10
instructions qui la suivent if i==5
» Dans le cas d’une boucle imbriquée, l’instruction BREAK disp(i);
interrompt seulement l’exécution de la boucle la contenant disp(‘Break interrompt seulement l execution de la boucle');
» On reprend le programme à l’instruction qui suit la fin de la break;
boucle (mot-clé end) end
disp(['Afficher la valeur de i = ', num2str(i)]);
• Syntaxe : end
break disp(['la valeur de i = ' num2str(i)]);
disp('Fin de la boucle ');

20
12/03/2026

Les Instructions de Contrôle Les Instructions de Contrôle


L’instruction RETURN :
L’instruction RETURN : Exemple : Recherche la position de la première occurrence d’une lettre dans une chaîne
» Provoque un retour au programme appelant (ou au clavier) texte = input(‘Entrer le texte : ’, ‘s’);
lettre = input(‘Saisir la lettre à rechercher : ‘ ,’s’);
» Les instructions suivants l’instruction RETURN ne seront pas lent = length(texte);
exécutées lenl = length(lettre);
» Souvent utilisée conjointement avec une instruction de if lent == 0 || lenl == 0
sélection: disp('chaine ou lettre vide’)
par exemple pour tester dans le corps d’une fonction si les return %arrêter l’exécution de toutes les instructions et retour au clavier
paramètres d’entrée ont une valeur attendue end
i=1;
» Utile pour éviter une boucle WHILE infinie while texte(i)~=lettre
i=i+1;
• Syntaxe : if i>lent
disp(‘ la lettre n existe pas dans le texte’)
return return %arrêter l’exécution de toutes les instructions et retour au clavier
end
end
disp(['la lettre ', texte(i), ' se trouve à la position ', num2str(i)] )

Les Instructions de Contrôle Les Instructions de Contrôle


L’instruction ERROR :
L’instruction ERROR : Exemple :
» Provoque un retour au programme appelant (ou au texte = input(‘Entrer le texte : ’,’s’);
lent = length(texte);
clavier) et affiche un message d’erreur if lent == 0
error(‘texte vide’) % arrêter l’exécution de toutes les instructions suivantes (retour
end % au clavier) et affiche un message d’erreur
• Syntaxe : lettre = input(‘Saisir la lettre à rechercher : ‘,’s’);
lenl = length(lettre);
error(‘message’) if lenl == 0
error(‘lettre vide’) % arrêter l’exécution de toutes les instructions suivantes (retour
end % au clavier) et affiche un message d’erreur
i=1; % initialiser le compteur de position
while (texte(i)~=lettre) % tant que la lettre n’est pas trouvée
i=i+1; % incrémenter le compteur de position
if (i>lent) % si tout le texte a été lu
disp(‘ la lettre n existe pas dans le texte’)
return %arrêter l’exécution de toutes les instructions suivantes (retour au clavier)
end
end
disp(['la lettre ', texte(i), ' se trouve à la position ', num2str(i)]

21
12/03/2026

Les Instructions de Contrôle : WARNING


Les Instructions de Contrôle texte = input(‘Entrer le texte : ’,’s’);
lent = length(texte);
while lent == 0
L’instruction WARNING : warning(‘texte vide’); % affiche un message de mise en garde
texte = input(‘Entrer le texte : ’,’s’); % saisir à nouveau le texte
» Permet d’afficher un message de mise en garde sans lent = length(texte);
suspendre l’exécution du programme end
lettre = input(‘Saisir la lettre à rechercher : ‘,’s’);
lenl = length(lettre);
• Syntaxe : while lenl == 0
warning(‘message de mise en garde’) warning(‘lettre vide’) % affiche un message de mise en garde
lettre = input(‘Saisir la lettre à rechercher : ‘,’s’); % saisir à nouveau la lettre
lenl = length(lettre);
» Possibilité d’indiquer à Matlab de ne pas end
afficher les messages de mise en garde : i=1;
warning off while (texte(i)~=lettre)
i=i+1; % incrémenter le compteur de position
if (i>lent) % si tout le texte a été lu
» Rétablir l’affichage des messages de mise en disp(‘ la lettre n existe pas dans le texte’)
garde : return % arrêter l’exécution de toutes les instructions
end % suivantes (retour au clavier)
warning on end
disp(['la lettre ', texte(i), ' se trouve à la position ', num2str(i)] )

Les Instructions de Contrôle : PAUSE


Les Instructions de Contrôle texte = input(‘Entrer le texte : ’,’s’);
lent = length(texte);
while lent == 0
L’instruction PAUSE : warning(‘Texte vide’); % affiche un message de mise en garde
texte = input(‘Entrer le texte : ’,’s’);
lent = length(texte);
➢Permet de suspendre l’exécution du programme end
➢ L’exécution normale reprend dès que l’utilisateur pause(5); % pause de 5 secondes
lettre = input(‘Saisir la lettre à rechercher : ‘,’s’);
enfonce une touche du clavier lenl = length(lettre);
while lenl == 0
warning(‘lettre vide’) % affiche un message de mise en garde
• Syntaxe : lettre = input(‘Saisir la lettre à rechercher : ‘,’s’);
pause lenl = length(lettre);
end
➢ Reprend l’exécution dès que l’utilisateur enfonce une touche du clavier i=1;
while (texte(i)~=lettre)
i=i+1;
pause(n) if (i>lent)
➢ Suspendre l’exécution du programme pendant n secondes disp(['la lettre ',lettre, ' ne se trouve pas dans le texte']);
return % arrêter l’exécution de toutes les instructions suivantes retour au clavier
end
end
disp(‘pour avoir le résultat, taper sur une touche du clavier !’);
pause;
disp(['la lettre ', texte(i), ' se trouve à la position ', num2str(i)] )

22
12/03/2026

les matrices et les vecteurs


Les vecteurs et les matrices peuvent être construits
directement suivant la syntaxe suivante :
➢ ils sont délimités par des crochets,
➢ les éléments sont entrés ligne par ligne,
➢ les éléments appartenant à la même ligne sont
séparés par des espaces (ou par des virgules),
➢les différentes lignes doivent comporter le même
nombre d'éléments et sont séparées par des points-
virgule.

les matrices et les vecteurs les matrices et les vecteurs


Une matrice type VECTEURS
➢ [a11, a12, a13 … ; a21, a22, a23 … ] On peut définir un vecteur x en donnant la liste de ses éléments:
➢ [1, 4, 6 ; 2, -1, 0.5 ; 3, 6, -2 ; 4, -7, 18] >> x=[0.5 1.2 -3.75 5.82 -0.735]
➢ [ ] signalisent qu’on va composer une matrice à partir de x=
plusieurs éléments 0.5000 1.2000 -3.7500 5.8200 -0.7350
➢ , sépare les éléments d’une ligne (les colonnes) ; peut On a ainsi défini un (1,5) vecteur : un vecteur ligne contenant 5
être remplacé avec l’espace éléments.
➢ ; sépare les lignes Exemple d'un (5,1) vecteur colonne :
● Un vecteur ligne: matrice (1×n) >> y=[0.5;1.2;-3.75;5.82;-0.735]
✓ [a1, a2, a3 … ] y=
0.5000
● Un vecteur colonne : matrice (n×1)
1.2000
✓ [a1; a2; a3 … ] -3.7500
● Un élément simple : matrice (1×1) 5.8200
✓ [a] -0.7350

23
12/03/2026

les matrices et les vecteurs les matrices et les vecteurs


VECTEURS VECTEURS
On peut utiliser une fonction qui génère un vecteur :
On peut aussi définir un vecteur en donnant la suite qui forme le [Link](vi,vf,n) crée une liste de n éléments uniformément
vecteur : répartis entre vi et vf.
>> z= 2:0.6:5 %Note: le pas est de 0.6 Exemple:
z=
2.0000 2.6000 3.2000 3.8000 4.4000 5.0000 >> x =[Link](0.5,2,4)
Note z= 2:5 par défaut crée une suite avec un pas unitaire x=
0.5000 1.0000 1.5000 2.
>> t=1:5.6
t= Remarque:
12345 Lors qu'on ajoute un «;» à la fin d'une instruction, elle est exécutée mais le
(puisque 5+1 est strictement supérieur à 5.6) résultat n'est pas affiché: (à ne pas oublier dans les programmes ou lors de la
manipulation de longs fichiers de données)

>> a=[1 2 3 4 5];


>> b=-2.5;
>> c=b*a;

les matrices et les vecteurs les matrices et les vecteurs


VECTEURS VECTEURS
Lors qu'il n'y a pas de «;» à la fin d'une instruction, elle est Des vecteurs définis au préalable peuvent être utilisés pour
exécutée et le résultat est affiché: générer d'autres vecteurs, par exemple:
>> a=[1 2 3];
>> a=[1 2 3 4 5]
>> b=[4 5 6];
a=
>> c=[a b]
12345
c=
>> b=-2.5
123456
b=
Si l'on veut déterminer la longueur d'un vecteur, on utilisera la
-2.5000
commande "length", cela donne :
>> c=b*a
c= >> ll=length(c)
-2.5000 -5.0000 -7.5000 -10.0000 -12.5000 ll =
6

24
12/03/2026

les matrices et les vecteurs les matrices et les vecteurs


Exercice MATRICES:
trouver le plus grand élément dans un vecteur de nombres
Méthode : Pour définir une matrice il faut entrer chaque nombre séparé par des
o définir le plus grand élément comme étant le premier élément du vecteur espaces, un à la suite de l'autre, et séparer les lignes par un point-
o comparer cette valeur avec le deuxième élément du vecteur et définir le plus grand
des deux virgule, le tout entre crochets.
o comparer cette valeur avec le troisième élément du vecteur et définir le plus grand
des deux Exemple :
o faire de même jusqu’au dernier élément du vecteur

X = input('Entrer le vecteur de nombres :','s');


>>A = [1 2 3;4 5 6;7 8 9]
X = str2num(X);
TAILLE = length(X);
L'exécution de cette commande donne une matrice qui est
MAX = X(1); %initialiser MAX au premier élément aussitôt affichée.
for i=2 :TAILLE
if X(i)>MAX %comparer MAX avec chaque élément suivant A=
MAX = X(i) ; 123
end
end
456
disp(['Le plus grand élément du vecteur est : ',num2str(MAX)]) ; 789

les matrices et les vecteurs les matrices et les vecteurs


MATRICES: MATRICES:
On définit aussi une matrice A en donnant ses éléments: Certaines matrices sont prédéfinies dans matlab. Ainsi :
>> A=[0.5 2.7 3.9 4;4.5 0.85 -1.23 3;-5.12 2.47 9.03 2] ✓ zeros(m,n) permet de créer une matrice (m,n) de zéros;
A= ✓ ones(m,n) permet de créer une matrice (m,n) de uns
0.5000 2.7000 3.9000 4.0000 ✓eye(n) permet de créer une matrice (n,n) identité.
4.5000 0.8500 -1.2300 3.0000
-5.1200 2.4700 9.0300 2.0000 Exemple :
>> B=eye(4)
Pour en connaître la dimension, on utilise la commande "size" : B=
>> [l c]=size(A) 1000
l= 0100
3 0010
c= 0001
4

25
12/03/2026

les matrices et les vecteurs les matrices et les vecteurs


OPÉRATIONS MATRICIELLES
EMPLOI DES INDICES
Les opérations matricielles exécutées par MATLAB sont :
Les éléments d'un vecteur ou d'une matrice peuvent être ➢ B = A' La matrice B est égale à la matrice A transposée
adressés en utilisant les indices sous la forme suivante: ➢ E = inv(A) La matrice E est égale à la matrice A inversée
➢ t(10) élément no. 10 du vecteur t ➢ C = A + B Addition
➢ D = A - B Soustraction
➢ A(2,9) élément se trouvant à ligne 2, colonne 9 de la matrice A
➢ Z = X*Y Multiplication
➢ B(:,7) la colonne 7 de la matrice B ➢ X = B/A Division (Équivalent à B*inv(A)
➢ C(3,:) la ligne 3 de la matrice B
[Note: X = A\B Équivalent à inv(A)*B ]

Note: Attention aux dimensions des multiplications et divisions


de matrice

les matrices et les vecteurs les matrices et les vecteurs


OPÉRATION «ÉLÉMENT PAR ÉLÉMENT» Opérateurs matriciels
Les opérations «élément par élément» des vecteurs et des Dans Matlab il y a plusieurs opérateurs :
matrices sont effectuées en ajoutant un point (.) avant les inv(A) Matrice inverse de A
opérations * / ^ sum(A) Somme des colonnes de A (réponse sous la forme d'un vecteur ligne).
diag(A) Sort les élément de la diagonale sous la forme d'un vecteur colonne.
Exemple 1: + Addition élément à élément d'une matrice
>> A=[1 2 3 4 5]; - Soustraction élément à élément d'une matrice
>> B=[6 7 8 9 10];
.* Multiplication élément à élément d'une matrice
>> C=A.*B
C= ./ Division élément à élément d'une matrice
6 14 24 36 50 .\ Division inverse élément à élément d'une matrice
/ Division matricielle (A/B équivaut à A*inv(B))
>> D=A./B \ Division par la gauche (A\B équivaut à inv(A)*B)
D=
0.1667 0.2857 0.3750 0.4444 0.5000 .^ Puissance élément à élément d'une matrice
.' Transposée
' Transposée conjuguée complexe

26
12/03/2026

les matrices et les vecteurs les matrices et les vecteurs


Opérateurs matriciels Opérateur ":"
Les différents opérateurs applicables aux matrices ou tableaux : Pour créer un vecteur ou une matrice, il est possible d'utiliser l'opérateur " : ". Cet
opérateur permet de construire une suite de nombre stockée sous la forme d'un
Opérateur MATLAB Écriture mathématique Terme général vecteur.

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.

les matrices et les vecteurs Opérations sur les matrices


Beaucoup d'autres opérations sont possibles sur les
La matrice est l'élément de base en Matlab. Voici matrices. En voici quelques unes :
comment les créer et les manipuler : • Inversion
>> inv(A)
• Créer une matrice Soit la matrice A= [1 2;3 4] Alors
Inv( A)= -1/2*[4 -2; -3 1]= [-2 1; 1.5 -0.5]
>> A = [1 2 3; 4 5 6] • Transposée
>> transp(A)
• Accéder à un élément Le caractère spécial (') sert à désigner la transposée d'un matrice.
La commande A = [1 2 3;4 5 6;7 8 9]' produit la matrice
>> A(1,2) A’ = [1 4 7; 2 5 8; 3 6 9]
• Déterminant
• Modifier un élément
>> det(A)
>> A(1,3) = 7 déterminant des matrices 2 × 2 de la forme A= [1 2;3 4]
Det(A)= 1*4-2*3=-2

27
12/03/2026

Opérations sur les matrices Opérations sur les matrices


Exemples Exercice:
A=[1 2 3; 3 2 4; 5 4 6] Écrire un script qui permet de :
B=inv(A)
C=transp(A) ➢ saisir les éléments de deux matrices.
D=det(A)
➢ Faire l’addition des deux matrices.
A=
1 2 3
➢ Afficher la matrice résultante.
3 2 4
5 4 6
B=
-0.6667 -0.0000 0.3333
0.3333 -1.5000 0.8333
0.3333 1.0000 -0.6667
C=
1 3 5
2 2 4
3 4 6
D=
6

Opérations sur les matrices Travail dans un environnement propre


Exercice:
Écrire un script qui permet de :
% pour commencer dans un environnement propre:
➢ saisir les éléments de deux matrices.
clear all % supprime toutes les variables de la mémoire
➢ Faire l’addition des deux matrices.
close all % ferme toutes les fenêtres graphiques
➢ Afficher la matrice résultante.
clc % nettoie la fenêtre de commande
Script sur les Matrices:
A=input('Saisir la 1 ère matrice A = ');
B=input('Saisir la 2 éme matrice B = ');
C=A+B;
disp(['afficher la matrice somme C= ', mat2str(C)]);

28
12/03/2026

Programmes, Fonctions et sous-Fonctions


Il existe deux types de fichiers de programme :
1. Les scripts, qui n’acceptent pas d'arguments en entrée et ne
retournent pas d’arguments en sortie. Ils opèrent sur les données
dans l’espace de travail.
2. Les fonctions, qui peuvent accepter des arguments en entrée et
retourner des arguments en sortie. Les variables internes sont
locales à la fonction.
Syntaxe :
def nom_fonction(liste de paramètres):
Les Sous-Fonctions
Les fonctions peuvent contenir d’autres fonctions. La première
fonction est la fonction primaire qui sera appelée dans le script
principal. Les fonctions qui seront appelées dans fonction
principale sont des sous- fonctions et ne seront visibles que par la
fonction primaire.

Programmes, Fonctions et sous-Fonctions Programmes, Fonctions et sous-Fonctions


On utilise les fonctions afin de : À l'intérieur des fonctions on peut manipuler trois types de
➢ Programmer des opérations répétitives : variables :
1. Les variables d'entrée de la fonction;
réutilisation
2. Les variables de sortie de la fonction ;
➢ Limiter le nombre de variables dans l’invite Matlab 3. Les variables locales. Ce sont des variables temporaires. Elles n'ont
➢ Diviser le programme (problème) de manière claire de sens qu'à l'intérieur de la fonction et ne seront pas «vues» de
l'extérieur. Elles sont indépendantes des autres fonctions et du
Les fonctions sont des scripts MATLAB particuliers. programme principal
La structure d'une fonction comporte nécessairement: Cependant , il peut arriver que plusieurs fonctions aient besoins
➢ le mot réservé function ; des mêmes variables. Pour les partager il faut les déclarer comme
➢ le nom de la fonction ; variables globales dans toutes les fonctions et le programme principale
➢ un ensemble de paramètres d'entrée ; qui les utilisent et de préférence au début du script .
➢ un ensemble de paramètres de sortie ; Exemple:
% on déclare les variables comme global
global a b

29
12/03/2026

Programmes, Fonctions et sous-Fonctions Fonctions


Pour définir une nouvelle fonction sous Matlab, on écrit la
Exemple de fonction définition de la fonction dans un fichier avec une extension .m
function returnval = myfunction(var1, var2) (fonction M-File). Le nom du fichier doit être le nom de la première
newvar = var1^2; fonction définie (la seule visible). On l'exécute en tapant le nom de la
fonction avec entre parenthèses la liste des arguments.
returnval = newvar*var2;
La première ligne du fichier de la fonction doit suivre la syntaxe
On utilise la fonction de la manière suivante : suivante:
>> x = myfunction(2, 3) function arguments de sortie = nom(arguments d'entrée)
Attention, contrairement au script, les variables d'une fonction
sont des variables locales, qui ne sont pas accessibles en dehors de la
fonction. Pour passer des information à une fonction, il faut donc
utiliser les paramètres d'entrée ou de sortie. En fait on peut utiliser
des variables globales (mot clé global) sous Matlab, mais cela est à
éviter dans le cadre d'une bonne programmation.

Programmes, Fonctions et sous-Fonctions


Fonctions Fonction de Calcule de la Surface:
function S=Fonctsurface(r)
On définit la fonction de la manière suivante: % calcul de la surface d'un cercle
function [vars1, ..., varsm] = fonc(vare_1, ..., varen) S=pi*r^2;
séquence d'instructions Fonction de Calcule de l’Aire:
function A=FonctAire(r)

% calcul de l' aire
vars1, ..., varsm sont les variables de sortie de la fonction; A=4*pi*r^2;
Fonction de Calcule de volume:
vare1, ..., varen sont les variables d'entrée de la fonction;
function v=FonctVolume(r)
% calcul du volume
v=4*pi*r^3/3;
séquence d'instructions est le corps de la fonction.

30
12/03/2026

Programmes, Fonctions et sous-Fonctions Programmes, Fonctions et sous-Fonctions


Script MatLab qui fait appel aux Fonctions : Variable Globale:
% Script pour appel aux fonction Global pi
r=input('saisir le rayon r = ') % Script pour appel aux fonction
% calcule de la surface du cercle r=input('saisir le rayon r = ')
S=Fonctsurface(r); % calcule de la surface du cercle
disp({'la surface du cercle de rayon r est = ',num2str(S)}) S=Fonctsurface(r);
% calcule de l'aire disp({'la surface du cercle de rayon r est = ',num2str(S)})
A=FonctAire(r); % calcule de l'aire
disp({'l aire du cercle de rayon r est = ',num2str(A)}) A=FonctAire(r);
% calcule du volume disp({'l aire du cercle de rayon r est = ',num2str(A)})
V=FonctVolume(r); % calcule du volume
disp({'le volume du cercle de rayon r est = ',num2str(V)}) V=FonctVolume(r);
disp({'le volume du cercle de rayon r est = ',num2str(V)})

Programmes, Fonctions et sous-Fonctions


Fonction de Calcule de la Surface:
function S=Fonctsurface(r)
Fonctions
Les fonctions mathématiques de base sont données dans le tableau suivant:
Global pi
% calcul de la surface d'un cercle
S=Pi*r^2;

Fonction de Calcule de l’Aire:


function A=FonctAire(r)
Global pi
% calcul de l' aire
A=4*Pi*r^2;

Fonction de Calcule de volume:


function v=FonctVolume(r)
Global pi
% calcul du volume
v=4*Pi*r^3/3;

31
12/03/2026

Exemple de Fonction Fonctions prédéfinies


function x=racine(a,b) % calcul la racine de f(x) définie ci-après sur [a,b] Toutes les fonctions courantes et moins courantes existent. La plupart
fa=f(a); fb=f(b); x=(a+b)/2; d'entre elles fonctionnent en complexe. On retiendra que pour appliquer
if (fa*fb>0) x=-Inf; return; end; une fonction à une valeur, il faut mettre cette dernière entre parenthèses.
while (b-a)>eps*x
x=(a+b)/2; fx=f(x); Voici une liste non exhaustive :
if(sign(fx)==sign(fa)) ➢ fonctions trigonométriques et inverses : sin, cos, tan, asin, acos, atan
a=x; fa=fx;
else ➢ fonctions hyperboliques (on rajoute «h») : sinh, cosh, tanh, asinh,
b=x; fb=fx; acosh, atanh
end; ➢ racine, logarithmes et exponentielles : sqrt, log, log10, exp
end;
function y=f(x) y=x^3-2*x-5; % définition de f(x) (fonction locale) ➢ fonctions erreur : erf,

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

Fonctions prédéfinies Fonctions prédéfinies


Fonctions utiles pour diverses opérations mathématiques Fonctions utiles pour diverses opérations mathématiques

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().

Les fonctions scalaires, c'est-à-dire celles qui sont appelées à être


utilisées sur des scalaires, peuvent être aussi appliquées sur des
matrices. La réponse résultante sera cependant une matrice à laquelle on
aura appliquée la fonction sur tous les éléments.
Exemple :
>> A=[1 -2 -4;6 -7 8]
A=
1 -2 -4
6 -7 8
>> abs(A)
ans =
124
678

Les fonctions Exercice 1:


Les fichiers .m permettent d'écrire du code mais aussi Écrire une fonction binome(a, b, c) qui renvoie les racines du
des fonctions : polynôme a*X^ 2 + b*X + c.
Indications :
function RES = min(nb1, nb2) – Suivez l’algorithme habituel. Calculez Delta = b ^2 − 4ac
puis en fonction du signe de Delta renvoyez les racines
réelles ou complexes ;
if (nb1 < nb2) – Vous pouvez utiliser la variable i en Matlab pour désigner la
RES = nb1; racine carrée de −1, et la fonction sqrt(x) pour obtenir la
else racine carrée d’un nombre positif ;
RES = nb2; – Pour renvoyer plusieurs valeurs, mettez les dans un tableau
end; et renvoyez le tableau.

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

Les graphiques avec MatLab Les graphiques


➢ Matlab est une console d’exécution, il permet d’exécuter des
fonctions, d’effectuer des opérations mathématiques, de 1) Création d’un graphique
manipuler des matrices, d’attribuer des valeurs à des variables, 2) Traçage des jeux des données multiples sur un seul
de tracer ou de représenter des graphiques, … graphique
➢ La représentation graphique aide l’utilisateur à résoudre et à 3) Spécification des styles, couleurs et marqueurs des
profiler un problème lié à un phénomène naturel ou physique. lignes
4) Traçage des lignes et des marqueurs
➢ Pour les représentations graphiques, Matlab s’appuie sur des 5) Représentation graphique des données imaginaires et
données numériques discrètes rangées dans des matrices ou des complexes
vecteurs aux dimensions compatibles. 6) Ajout des tracés à un graphique existant
➢ L’utilisation des instructions de dessins pour tracer les courbes 7) Fenêtres de figures
(1D, 2D, 3D) complétées par des attributs et des arguments 8) Affichage de plusieurs tracés ou graphiques sur une
optionnels. figure
➢ La visualisation des résultats s’effectue dans une fenêtre 9) Contrôle des axes
graphique avec possibilité de zoom, d’impression, de modification 10) Ajout des étiquettes d’axe et des titres
de couleurs, de polices, de types de trait, …

Les graphiques Les graphiques


1) Création d’un graphique Graphiques 2D :
TRAÇAGE DE COURBES
2) Traçage des jeux des données multiples sur un seul
graphique
3) Spécification des styles, couleurs et marqueurs des
Par exemple, on utilise l'instruction plot pour tracer un
lignes graphique 2D:
4) Traçage des lignes et des marqueurs
5) Représentation graphique des données imaginaires et >>plot(x,y) % Tracer le vecteur y en fonction du vecteur x
complexes >>plot(t,x,t,y,t,z) %Tracer x(t), y(t) et z(t) sur le même graphique
6) Ajout des tracés à un graphique existant > >plot(t,z,'r--') %Tracer z(t) en trait pointillé rouge
7) Fenêtres de figures
8) Affichage de plusieurs tracés ou graphiques sur une
figure
9) Contrôle des axes
10) Ajout des étiquettes d’axe et des titres

36
12/03/2026

Les graphiques Les graphiques


Styles et couleurs: les types de marqueurs
Pour différencier les courbes d'un graphique, il est possible de changer la '+' Marqueur de type croix
couleur, le style des marqueurs et le style de courbe 'o' Marqueur rond
'*' Marqueur en étoile
>> [Link](t,z,’csm’) 'x' Marqueur de type X
c: couleurs s: Styles m: marqueur 's' Marqueur carrés
'd' Marqueur losange
Les couleurs possibles : Les styles de courbes: '^' Marqueur triangulaire vers le haut
'c' Cyan 'v' Marqueur triangulaire vers le bas
'-' Ligne pleine
'>' Marqueur triangulaire vers la droite
'm' Magenta
'--' Ligne tiretée
'<' Marqueur triangulaire vers la gauche
'y' Jaune
':' Ligne pointillée
'p' Marqueur pentagonal
'r' Rouge
'none' Aucune ligne 'h' Marqueur hexagonal
'g' Vert
'none' Aucun marqueur
'b' Bleu
'w' Blanc
'k' Noir

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

Les graphiques Les graphiques


On peut aussi choisir le format du graphique: 2. Tracés logarithmiques
loglog Graphique à l'échelle log-log
1. Tracés linéaires Tracé semi-log ( l'axe des x a une échelle
semilogx
logarithmique)
plot Tracé linéaire 2D Tracé semi-log ( l' axe y a une échelle
semilogy
plot3 tracé linéaire 3D logarithmique)
stairs Graphique en escalier
errorbar Tracé linéaire avec barres d'erreur 3. Tracés de fonction
area Terrain 2D avec zone remplie
Tracé empilé de plusieurs variables avec fplot Tracer une expression ou une fonction
stackedplot
axe x commun fimplicit Tracer une fonction implicite
fplot3 Traceur de courbes paramétriques 3D

Les graphiques Les graphiques


Graphiques 2D : Graphiques 2D :
FORMAT DE GRAPHIQUE Exemple 3:
On peut aussi choisir le format du graphique: >> t=0:0.01e-3:0.06;
plot(x,y) %Tracer y(x) avec échelles linéaires >> y=10*exp(-60*t).*cos(120*pi*t);
semilogx(f,A) %Tracer A(f) avec échelle log(f) >> z=10*exp(-60*t).*sin(120*pi*t);
semilogy(w,B) %Tracer B(w) avec échelle log(B) >> a=10*exp(-60*t);
>> plot(t,y,'r',t,z,'g'),grid
polar(theta,r) %Tracer r(theta) en coordonnées
>> hold on
%polaires 12 >> plot(t,a,'b--')
bar(x,y) % Tracer y(x) sous forme des barres >> title('Fonctions sinusoidales amorties')
grid %Ajouter une grille >> xlabel('Temps , s'),ylabel('Tension , V')
Remarque : cette commande "hold on" permet de tracer plusieurs graphes sur
la même figure; sinon une deuxième commande plot (ou autre) effacera le graphe
précédent pour effectuer la dernière commande

38
12/03/2026

Les graphiques Les graphiques


Graphiques 2D :

Si vous voulez tracer un autre graphe, vous pouvez faire:


>> hold off
>> plot(y,z),grid
>> axis equal % Axes orthonormés
>> xlabel('y'),ylabel('z')
N.B: hold off recommencera un nouveau graphe à la prochaine
commande graphique (en restant dans la même fenêtre graphique),

Les graphiques Les graphiques


GRAPHIQUE MULTIPLE
GRAPHIQUE MULTIPLE
On peut tracer plusieurs graphiques dans la même fenêtre
en utilisant l’instruction subplot pour diviser la fenêtre en subplot(121) subplot(122)
plusieurs parties.
- Diviser la fenêtre en deux parties (2 x 1)
subplot(211)
subplot(212)
subplot(221) subplot(222)
Syntaxe de la fonction subplot:
>> subplot(nmk),plot(y,z,’csm’),grid subplot(223)
n : nombre de lignes. subplot(224)
m : nombre de colonnes.
k : la position du graphe.

39
12/03/2026

Les graphiques Les graphiques


GRAPHIQUE MULTIPLE : GRAPHIQUE MULTIPLE :
Exemple 3b:
>>clear all
>>close all
>>figure(4) ;
>> t=0:0.01e-3:0.06;
>> y=10*exp(-60*t).*cos(120*pi*t);
>> z=10*exp(-60*t).*sin(120*pi*t);
>> a=10*exp(-60*t);
>> subplot(211),plot(t,y,'r:x',t,z,'m--+'),grid
>> hold on
>> plot(t,a,'b-^')
>> plot(t,-a,'y:*')
>> title('Fonctions sinusoidales amorties')
>> xlabel('Temps , s'),ylabel('Tension , V')
>> subplot(212),plot(y,z,'m:+'),grid
>> axis equal
>> xlabel('y'),ylabel('z')

Les graphiques Les graphiques


MANIPULATION DE GRAPHIQUES Exemple:
axis([-1 5 -10 10]) %Choix des échelles x = (-1,5) clear all
%y = (-10,10) close all % ferme les anciennes figures
figure(5); % pour créer une nouvelle fenêtre de figure
Attention faites un clf (efface la figure) et clear (efface les données x = [0:0.01:2*pi];
de la fenêtre de travail matlab) avant de passer a l'exercice suivant plot(x,sin(x),'b-o',x, cos(x),'m--+')
axis([0 2*pi -1.1 1.1]);
title('Graphique Cos et Sinus ');
xlabel('L''axe des x')
ylabel('L''axe des y')
legend('Sinus','Cosinus')

40
12/03/2026

Les graphiques Les graphiques


>>clear all
>>close all % ferme les anciennes figures

>>figure(1) ; % pour créer une nouvelle fenêtre de figure


>>x = [0:0.01:2*pi];
>>plot(x, cos(x),'.',x, sin(x),'+') % cos(x) en points, sin(x) en +

Graphe en trois dimensions


Les graphiques Fonctions usuelles pour Représenter l les données 3D à l’aide de tracés de
surface et maillés.
Fonction Usage
En plus des fonctions habituelles comme plot, Matlab
Plot3 Tracé d’une ligne paramétrique en 3D
possède une commande pour effectuer plusieurs
graphiques sur la même figure : meshgrid Définition de matrices de maillage à partir de deux vecteurs
surf Tracé d’une surface en 3D dégradé de couleur à partir de
>> subplot(3,1,1); matrices de maillage

>> 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

fsurf Tracer une surface 3D


ezsurf , Tracé facile de surface dégradé de couleur (matrices de maillage
ezsurfc définie par défaut)

41
12/03/2026

Graphe en trois dimensions


Fonctions usuelles pour Représenter l les données 3D à l’aide de tracés de
surface et maillés.
Graphe en trois dimensions
Fonction Usage Exemple: Créer un tracé de surface:
Mesh Tracé d’une surface en 3D, à partir de matrices de Créer trois matrices de la même taille et Tracer les ensuite sous
maillage forme de surface.
meshc Tracé de contour sous tracé de surface maillée [X,Y] = meshgrid(1:0.5:10,1:20);
meshz Terrain à surface maillée avec rideau Z = sin(X) + cos(Y);
fmesh Tracer un maillage 3D surface(X,Y,Z)
ezmesh, Tracé facile de surface (matrices de maillage définies
ezmeshc par défaut)
sphere Définition de matrices de maillage pour le tracé d’une
sphère
cylinder Définition de matrices de maillage pour le tracé d’un
cylindre
pcolor Tracé pseudo-couleur
contour3 tracé de contour 3D

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Créer un tracé de surface: Exemple:
[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
subplot(2,2,1);surface(X,Y,Z)
subplot(2,2,2);surfc(X,Y,Z)
subplot(2,2,3);surf(X,Y,Z)
subplot(2,2,4);surfl(X,Y,Z)

42
12/03/2026

Graphe en trois dimensions Graphe en trois dimensions


Exemple: équations paramétriques
t = 0 : pi/100 : 5*pi
plot3 (cos(t) , sin(t) , t)
grid on
xlabel('axe cos(t)')
ylabel('axe sin(t) ')
zlabel('axe des t')
title(' équations paramétriques ')

Graphe en trois dimensions Graphe en trois dimensions


Exemple: équations paramétriques Exemple: équations paramétriques
équations paramétriques

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

X = [2345 3570 1260 5500];


labels = {'Recettes','Depenses','Benefices','Autres'};
pie3(X,labels)
title('BILAN Année 2010')

Graphe en trois dimensions Graphe en trois dimensions


Exemple: représenter la surface définie par la fonction z=sin(xy) sur le carré Exemple: Créer un tracé de maillage : Créez trois matrices de même
suivant [-π/2,π/2]x[-π/2,π/2] à l'aide d'une grille de points 31x31. On utilise la taille. Tracez-les ensuite sous forme de tracé maillé et spécifiez les couleurs de la
séquence de commandes : palette de couleurs pour le tracé de maillage

[xi,yi]=meshgrid(-pi/2:pi/30:pi/2); [X, Y] = meshgrid(-8:.5:8);


zi=sin(xi.*yi); R = sqrt (X.^2 + Y.^2) + eps;
surf(xi,yi,zi,zi); Z = sin(R)./R;
C=X.*Y;
mesh(X,Y,Z,C)
colorbar

46
12/03/2026

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Créer un tracé de maillage en utilisant les fonctions cylindre et Exemple: Comparer les quatre fonctions : surf, surfc, mesh, meshc
mesh
[xi,yi]=meshgrid(-pi/2:pi/30:pi/2);
t = 0:pi/10:2*pi; zi=sin(xi.*yi);
[X,Y,Z] = cylinder(4*cos(t));
mesh(X,Y,Z); title('Fonction mesh ');
subplot(2,2,1);
surf(xi,yi,zi);title(‘Fonction : surf');
subplot(2,2,2);
surfc(xi,yi,zi);title(‘Fonction : surfc');
subplot(2,2,3);
mesh(xi,yi,zi); title(‘Fonction : mesh');
subplot(2,2,4);
meshc(xi,yi,zi); title(‘Fonction : meshc');

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Comparer les quatre fonctions mesh, meshc, surf, surfl Exemple: Comparer les quatre fonctions mesh, meshc, surf, surfl
x = -1:0.2:1;
y = -2:0.2:2;
[X,Y] = meshgrid(x,y);
Z = Y .^2 - X.^2;
subplot(221), mesh(X, Y, Z);
xlabel('x'); ylabel('y'); zlabel('z'); title('mesh');
subplot(222), meshc(X, Y, Z);
xlabel('x'); ylabel('y');zlabel('z'); title('meshc');
subplot(223), surf(X, Y, Z);
xlabel('x'); ylabel('y');zlabel('z'); title('surf');
subplot(224), surfl(X, Y, Z);
xlabel('x'); ylabel('y');zlabel('z'); title('surfl');

47
12/03/2026

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Comparer les quatre fonctions mesh, meshc, surf, surfl
En utilisant les deux fonctions tiledlayout et nexttile :
Exemple: Comparer les quatre fonctions mesh, meshc, surf, surfl ✓ tiledlayout : Crée un diagramme en mosaïque pour afficher plusieurs tracés,
✓ nexttile : Crée un objet axes et le place dans la prochaine tuile vide du diagramme
en mosaïque de la figure actuelle
figure('Name', 'Graphe des Fonctions mesh, meshc, surf et surfl','NumberTitle','off');
x = -1:0.2:1; y = -2:0.2:2;
[X,Y] = meshgrid(x,y); Z = Y .^2 - X.^2;
tiledlayout(2,2);
ax1 = nexttile; mesh(X, Y, Z);
xlabel('x'); ylabel('y'); zlabel('z'); title('Fonction mesh');
ax2 = nexttile; meshc(X, Y, Z);
xlabel('x'); ylabel('y');zlabel('z'); title('Fonction meshc');
ax3 = nexttile; surf(X, Y, Z);
xlabel('x'); ylabel('y');zlabel('z'); title('Fonction surf');
ax4 = nexttile; surfl(X, Y, Z);
xlabel('x'); ylabel('y');zlabel('z'); title('Fonction surfl');

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Comparer les quatre fonctions mesh, meshc, surf, surfl
En utilisant les deux fonctions tiledlayout et nexttile :
✓ tiledlayout : Crée un diagramme en mosaïque pour afficher plusieurs tracés, Exemple: Les fonctions: mesh, meshc, meshz et contour avec la fonction
✓ nexttile : Crée un objet axes et le place dans la prochaine tuile vide du diagramme z=f(x,y)=sqrt(x^2+2y^2)
en mosaïque de la figure actuelle
x = -2:0.1:2;
y = -3:0.1:3;
[X,Y] = meshgrid(x,y)
Z =sqrt( X .^2 +2*Y.^2)
subplot(221), mesh(X, Y, Z);
xlabel('x'); ylabel('y'); zlabel('z'); title('mesh');
subplot(222), meshc(X, Y, Z);
xlabel('x'); ylabel('y'); zlabel('z'); title('meshc');
subplot(223), meshz(X, Y, Z);
xlabel('x'); ylabel('y'); zlabel('z'); title('meshz');
subplot(224), contour(x, y, Z);
xlabel('x'); ylabel('y'); zlabel('z'); title(‘contour');

48
12/03/2026

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Comparer les six fonctions surf, surfc, surfl, mesh, meshc, meshz
Exemple: Comparer les quatre fonctions mesh, meshc, meshz et contour
[X,Y] = meshgrid(-3:.125:3);
Z=sin(X.*Y);
subplot(2,3,1);
surf(X,Y,Z);title('Fct surf');
subplot(2,3,2);
surfc(X,Y,Z);title('Fct surfc')
subplot(2,3,3);
surfl(X,Y,Z);title('Fct surfl');
subplot(2,3,4);
mesh(X,Y,Z); title('Fct mesh');
subplot(2,3,5);
meshc(X,Y,Z); title('Fct meshc');
subplot(2,3,6);
meshz(X,Y,Z);title('Fct meshz');

Graphe en trois dimensions Les graphiques


Exemple: Comparer les six fonctions surf, surfc, surfl, mesh, meshc, meshz
Ajout de tracés à un graphique existant
La fonction shading : Définit les propriétés d'ombrage des couleurs.
Syntaxe :
✓ shading flat : chaque segment de ligne de maillage et chaque face ont
une couleur constante déterminée par la valeur de couleur à
l'extrémité du segment ou du coin de la face qui a le ou les indices les
plus petits.
✓ shading faceted : ombrage plat avec lignes de mailles noires
superposées. C'est le mode d'ombrage par défaut.
✓ shading interp : fait varier la couleur de chaque segment de ligne et de
chaque face en interpolant l'index de palette de couleurs ou la valeur
de couleur vraie sur la ligne ou la face.
✓ shading(axes_handle,...) : applique le type d'ombrage aux objets dans
les axes spécifiés par axes_handle, au lieu des axes actuels.

49
12/03/2026

Les graphiques Les graphiques


Ajout de tracés à un graphique existant Ajout de tracés à un graphique existant
La commande hold vous permet d’ajouter des tracés à des graphiques existants. La commande hold vous permet d’ajouter des tracés à des graphiques existants.
Par exemple, ces instructions créent d’abord un tracé de surface de la Par exemple, ces instructions créent d’abord un tracé de surface de la
fonction peaks, puis superposent un tracé de contour de la même fonction. fonction peaks, puis superposent un tracé de contour de la même fonction.

[x,y,z] = peaks; % Create surface plot


surf(x,y,z)
% renvoie les coordonnées x , y et z de la fonction des pics.
shading interp
% Hold the current graph
hold on
% Add the contour graph to the pcolor graph
contour3(x,y,z,20,'k')
% Return to default
hold off

Les graphiques Les graphiques


Afficher des valeurs de quelques lignes de niveau Afficher des valeurs de quelques lignes de niveau
d’un graphique en utilisant la commande clabel d’un graphique en utilisant la commande clabel
x = -2:0.1:2;
y = -3:0.1:3;
[X,Y] = meshgrid(x,y);
Z =sqrt( X .^2 +2*Y.^2);
[C,h] = contour(X,Y,Z);
xlabel('x'); ylabel('y'); title('contour');
clabel(C,h,'manual')

50
12/03/2026

Les graphiques Les graphiques


IMPRESSION ET ENREGISTREMENT DE GRAPHIQUES
✓ print Imprimer le graphique sur votre imprimante par défaut. IMPRESSION ET ENREGISTREMENT DE GRAPHIQUES
✓ print -dps Imprimer le graphique en PostScript
✓ print -dpsc Imprimer le graphique en PostScript Couleur
Exemple :
✓ print -dps [Link] Enregistrer le graphique en PostScript dans le fichier [x,y,z] = peaks;
[Link] % Créer un tracé de surface
✓ print -dpng [Link] Enregistrer le graphique en format png dans le surf(x,y,z)
fichier graphique % Supprimer les lignes de bord et les couleurs lisses
✓ print -dtiff -r200 [Link] : enregistrer le graphique en tant que fichier shading interp
TIFF avec une résolution de 200 dpi, % Maintenez le graphique actuel
hold on
Impression à partir du menu Fichier ou Exportation vers un fichier % Ajouter le graphique de contour au graphique pcolor
Dans le menu File, des options vous permettent : contour3(x,y,z,20,'k')
✓Print Preview : affiche une fenêtre de dialogue pour visualiser le graphique print -dpsc [Link]
à imprimer, print -dpng [Link]
✓Print : affiche une fenêtre de dialogue pour le choix de l’imprimante % Retour à la valeur par défaut
hold off
✓Export Setup : permet de régler la taille, la police , le style et d’exporter le
graphique vers différents formats tels qu’EPS, PNG et TIFF.
✓ Save et save as : pour la sauvegarde du graphisme

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Créé un maillage de la fonction f(x,y)=x*exp −x^2−y^2, sur une grille Exemple: La fonction: ezmesh pour tracer la fonction f(x,y)=x*exp −x^2−y^2,

de 40 par 40. en utilisant ezmesh

ezmesh trace la surface paramétrique en utilisant le domaine spécifié. trace f sur le


domaine par défaut en utilisant une grille n-par-n. La valeur par défaut de n est 60.

fh = @(x,y) x.*exp(-x.^2-y.^2);
ezmesh(fh,40)
colormap([0 0 1])

51
12/03/2026

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Créé un maillage de la fonction f(x,y)=x*exp −x^2−y^2, sur une grille Exemple: La fonction: ezmeshc pour tracer la fonction f(x,y)=x*exp −x^2−y^2,

de 40 par 40. en utilisant ezmeshc


ezmeshc(x, y, z, [min, max], n) trace la surface paramétrique en utilisant le domaine
spécifié. trace f sur le domaine par défaut en utilisant une grille n-par-n. La valeur par
défaut de n est 60.

fh = @(x,y) x.*exp(-x.^2-y.^2);
ezmeshc(fh,40)
colormap([0 0 1])

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Comparer les fonctions ezmesh et ezmeshc en créant un graphique
pour la fonction f(x,y)=y/ (1+x2+y2) sur le domaine –5 <x <5, –2π <y <2π.
Exemple: Comparer les fonctions ezmesh et ezmeshc en créant un graphique (cette image utilise une vue d'azimut = –65 et d'élévation = 26)
pour la fonction f(x,y)=y/ (1+x2+y2) sur le domaine –5 <x <5, –2π <y <2π.
(cette image utilise une vue d'azimut = –65 et d'élévation = 26)

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

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Comparer les fonctions mesh et surf en utilisant sphere Exemple: Comparer les fonctions mesh et surf en utilisant sphere
[X,Y,Z] = sphere(n)renvoie les coordonnées x -, y - et z - d'une sphère avec un rayon
égal à 1et n-by- nfaces. La fonction retourne le x -, y -, et z - coordonnées que
trois (n+1)-by- (n+1) matrices. Si n et non spécifié La sphère renvoyée a un rayon
égal à 1et se compose de 20 faces sur 20. La fonction retourne le x -, y -, et z -
coordonnées que trois 21-by- 21matrices:
FonctSphereMesh

[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 ');

Graphe en trois dimensions Graphe en trois dimensions


Exemple: En utilisant sphère et les deux fonctions tiledlayout et nexttile
Exemple: En utilisant sphère et les deux fonctions tiledlayout et nexttile : tiledlayout(2,2);
✓ tiledlayout : Crée un diagramme en mosaïque pour afficher ax1 = nexttile;
plusieurs tracés, sphere(ax1,10)
✓ nexttile : Crée un objet axes et le place dans la prochaine tuile vide axis equal
du diagramme en mosaïque de la figure actuelle title('Affiche 10*10 faces')
ax2 = nexttile;
sphere(ax2);
axis equal
title('Affiche 20*20 faces par Default')
ax3 = nexttile;
sphere(ax3,30)
axis equal
title('Affiche 30*30 faces')
ax4 = nexttile;
sphere(ax4,40)
axis equal
title('Affiche 40*40 faces')

53
12/03/2026

Graphe en trois dimensions Graphe en trois dimensions


Exemple: En utilisant sphère et les deux fonctions tiledlayout et nexttile Utilisation des fonctions hist et pie
✓ La fonction hist(x,n) répartit les valeurs du vecteur x en n classes et trace
l’histogramme correspondant (par défaut n = 10).
✓ [N,X] = hist(x,n) retourne dans N l’effectif de chacune des classes et dans X
l’abscisse du centre de chaque classe.
✓ La fonction pie(x) dessine un diagramme en secteurs des valeurs de x
normalisées par S = ∑ xi avec i allant de 1 à n
Script = HistogrammeGsecteurs

a = randn(1,500);
figure(1)
subplot(121)
hist(a)
title('Histogramme')
[N,X] = hist(a);
subplot(122)
pie(N)
title('Graphe en secteurs')

Le Graphisme Graphe en trois dimensions


Utilisation des fonctions hist et pie
✓ La fonction hist(x,n) répartit les valeurs du vecteur x en n classes et trace Exemple: la représentation des courbes tridimensionnelles, la fonction plot3
l’histogramme correspondant (par défaut n = 10). constitue l’extension de plot. Le tracé de la fonction z = (2 - x 2 ) (2 - y 2 ) sur la
✓ [N,X] = hist(x,n) retourne dans N l’effectif de chacune des classes et dans X diagonale du carré [-2, 2]: Script : GrapheTridimentionPLOT3
l’abscisse du centre de chaque classe.
✓ La fonction pie(x) dessine un diagramme en secteurs des valeurs de x
normalisées par S = ∑ xi avec i allant de 1 à n x = [-2:0.1:2]; y = x; % définie la diagonale
Script = HistogrammeGsecteurs
z = (2-x.^2).*(2-y.^2); % évalue la fonction
plot3(x, y, zeros(1,length(x)), ... % trace la diagonale
x, y, z, ... % trace la courbe
'LineWidth',3.0) % spécifie l’épaisseur
grid on % ajoute une grille
xlabel('Axe des x')
ylabel('Axe des y')
zlabel('Axe des z')
title('Le tracé de la fonction z = (2- x^2)(2-y^2) sur la diagonale du carré [-2, 2]')

54
12/03/2026

Le Graphisme Graphe en trois dimensions


Exemple: la représentation d’une sphère de rayon R qui varie de -R à +R avec
rayon r=√(R2-z2) : Script : GrapheSphereRayonR
Exemple: la représentation des courbes tridimensionnelles, la fonction plot3
constitue l’extension de plot. Le tracé de la fonction z = (2 - x 2 ) (2 - y 2 ) sur la R = 5; % rayon de la sphère
diagonale du carré [-2, 2]: Script : GrapheTridimentionPLOT3 n = 15; % nombre de cercles
z = linspace(-R,R,n); % vecteur z entre –R et +R
r = sqrt(R^2 - z.^2 % petit rayon des cercles. noter .^
t = linspace(-pi,pi,n); % angle pour le calcul des cercles
x = r' * cos(t); % coordonnées x et y des cercles
y = r' * sin(t); % noter la transposée de r (r’)
z = z' *ones(1,n); % duplication des coordonnées z
plot3(x , y , z ,'b-','LineWidth',1.5) % cercles horizontaux
hold on % pour un autre plot3
plot3(x', y', z','r-','LineWidth',1.5) % cercles verticaux
grid on % grille
xlabel('Axe des x')
ylabel('Axe des y')
zlabel('Axe des z')
title('Une sphère de rayon R qui varie de -R à +R avec rayon r=sqrt(R^2-z^2)]')

Graphe en trois dimensions Graphe en trois dimensions


Exemple: la représentation d’une sphère de rayon R qui varie de -R à +R avec
rayon r=√(R2-z2) : Script : GrapheSphereRayonR
Exemple: Représentation par maillage dans le plan (x,y) des fonctions mesh et
surf de la fonction f(x,y)=x* exp −x^2−y^2, et La fonction contour qui trace dans le plan
(x,y) : courbemeshsurfXY
x=[-2:0.1:2];
y=[-2:0.1:2];
[X,Y]=meshgrid(x,y);
colormap([0 0 1]);
Z=X.*exp(-X.^2-Y.^2);
subplot(121)
mesh(X,Y,Z)
colormap('default') ;
surf(X,Y,Z)
title('Présentation mesh surf');
xlabel('x'), ylabel('y'), zlabel('Z')
subplot(122)
contour(X,Y,Z,10)
title('Tracé des courbes de contour');
xlabel('x'), ylabel('y')

55
12/03/2026

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Représentation par maillage dans le plan (x,y) des fonctions mesh et Exemple: Traçage d’un cercle dont on fait varier le rayon et le centre
surf de la fonction f(x,y)=x* exp −x^2−y^2, et La fonction contour qui trace dans le plan script : CercleRayonetCentreVarie
(x,y)
% le tableau des theta
th=linspace(0,2*pi,100);
% les valeurs de x et y pour un cercle de centre 0
x=cos(th);
y=sin(th);
% une boucle pour faire varier le rayon et le centre
for a=1:10;
% on trace un cercle
plot(x*a+a,y*a,'b','linewidth',1);
hold on
end
% on annote le graphique
axis equal
xlabel('x'); ylabel('y’), gtext('Traçage d’un cercle')

Graphe en trois dimensions Graphe en trois dimensions


Exemple: Traçage d’un cercle dont on fait varier le rayon et le centre Exemple: Traçage des graphiques tridimensionnels
script : graphique tridimensionnel

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

Graphe en trois dimensions


Graphe en trois dimensions Exemple: Traçage Surface mouvante pour les fonction:
f1=cos(cos(a)*X+sin(a)*Y) et f2=exp(-(X^2)/10)*cos(cos(a)*X+sin(a)*Y);
Script : GrapheSurfaceMouvante
Exemple: Traçage des graphiques tridimensionnels, n=50;
script : graphiquetridimensionnel
L=10;
x=linspace(-L,L,n);
y=linspace(-L,L,n);
[X,Y]=meshgrid(x,y);
a=pi/4;
% les fonctions en matrices
f1=cos(cos(a)*X+sin(a)*Y);
f2=exp(-(X.^2)/10).*cos(cos(a)*X+sin(a)*Y);
subplot(1,2,1);
mesh(X,Y,f1);
xlabel('x');ylabel('y');zlabel('z');title('fonction 1: Un cosinus, avec un angle de 45 degrés ')
grid on; box on; axis equal
% on trace la seconde fonction
subplot(1,2,2);
mesh(X,Y,f2);
xlabel('x');ylabel('y');zlabel('z');title('fonction 2 : une enveloppe Gaussienne selon x')
grid on; box on; axis equal

Graphe en trois dimensions


Graphe en trois dimensions Exemple: Tracer une fonction implicite en 3D
Exemple: Traçage Surface mouvante pour les fonction: Tracer l'hyperboloïde X^2+Y^2−Z^2= 0 sur l'intervalle par
f1=cos(cos(a)*X+sin(a)*Y) et f2=exp(-(X^2)/10)*cos(cos(a)*X+sin(a)*Y);
défaut de[ −5 , 5 ]​ pour x , y et z .

f = @(x,y,z) x.^2 + y.^2 - z.^2;


fimplicit3(f)

57
12/03/2026

Graphe en trois dimensions


Exemple: Tracer une fonction implicite en 3D
Tracer l'hyperboloïde X^2+Y^2−Z^2= 0 sur l'intervalle par
défaut de[ −5 , 5 ]​ pour x , y et z .

Animation Sous MATLAB Animation avec MATLAB


MATLAB traite une animation comme une succession Exemple: affichage de la courbe de la fonction sin(x)
d'images dont on peut contrôler la vitesse de défilement. sur l’intervalle [0,2π] de manière progressive en 15
La réalisation d'une animation commence par la images, et rejoue ensuite quatre fois l’animation.
réservation de l'espace mémoire nécessaire aux différents Script : Animation1
images ou frames. axis ( [ 0 2∗pi −1 1 ] ) ;
animation suit 3 étapes : for i = 1 : 15
b = 2∗pi/ 15;
1. moviein : Initialisation d’un buffer mémoire pour x = 0:0.1: b∗i ;
enregistrer une animation plot(x,sin(x), 'm-+') ;
axis( [0 2∗pi −1 1] ) ;
2. getframe : capture une figure dans une image m(i) =getframe;
de l’animation end
movie(m,4) ;
3. movie : affiche l’animation un certain nombre de fois

58
12/03/2026

Animations: une succession de graphiques


Animation avec MATLAB en utilisant getframe & movie2avi
Exemple: affichage de la courbe de la fonction sin(x) Exemple: Script : Animationconcimages
sur l’intervalle [0,2π] de manière progressive en 15 clear all; close all; clc % Pour commencer proprement
tmax=15;
images, et rejoue ensuite quatre fois l’animation. figure(1);clf;
hold on, % On superposera chaque graphique
view(3) % On impose la vue en 3D (angle de vue par défaut
J=jet; % jet est une palette de 64 couleurs
GF=[];
for k=0:0.1:tmax
t=k:0.01:k+1;
z=exp(-0.2*t+2*1i*pi*t);
c=round(63/tmax*k)+1;
% L'instruction graphique à proprement parler
plot3(t,real(z),imag(z),'linewidth',3,'color',J(c,:))
axis([0 10 -1 1 -1 1]) ;axis off
GF=[GF getframe]; % On concatène successivement les images
pause(0.05) % une courte pause maintenant inutile...
end
movie2avi(GF,'[Link]');

Animations: une succession de graphiques Animations: d’une ligne verticale


en utilisant getframe & movie2avi Exemple: Script: AnimationligneVerticale
Exemple: close all;
clear all;
% Initialization de la figure
% Tracez la ligne et obtenez les propriétés de la ligne
l = line ([0,0] , [0,1]);
% Set axis
axis ([-2,2,-2,2]);
% Boucle principale
% Boucle sur l'angle de la ligne (de 0 radians à 2pi radians
for a=0:0.01:2*pi
% Mettre à jour les coordonnées de la ligne
set (l, 'XData',[0,sin(a)], 'YData',[0, cos(a)] );
% Rafraîchir la figure
drawnow;
end

59
12/03/2026

Animations: d’une ligne verticale Animations: d’une surface mouvante


Exemple: Exemple: animation de la fonction: f(x,y)=cos(cos(a)*X+sin(a)*Y)
Script: AnimationsurfaceMouvante

% le vecteur des angles successifs


T=linspace(0,2*pi,100);
n=50; L=10;
x=linspace(-L,L,n); y=linspace(-L,L,n); [X,Y]=meshgrid(x,y);
% boucle temporelle
for ind=1:length(T);
a=T(ind);
f=cos(cos(a)*X+sin(a)*Y);
% on trace le graphique
mesh(X,Y,f);
xlabel('x');ylabel('y');zlabel('z');title('fonction: Un cosinus, avec un angle de 45 degrés')
grid on; box on; axis equal
axis([-L L -L L -1 1])
drawnow
end

Animations: d’une surface mouvante Animations:


Exemple: animation de la fonction: f(x,y)=cos(cos(a)*X+sin(a)*Y)
de la surface d’une matrice de maillage de la
fonction surf
Exemple: Animationsurf
Z = peaks; surf(Z);
axis tight
set(gca,'nextplot','replacechildren');
% Enregistrez le film
for j = 1:30
surf(sin(2*pi*j/30)*Z,Z)
F(j) = getframe;
end
% Joue le film trente fois
movie(F,30)

60
12/03/2026

Animations: de la surface d’une matrice de


Animations: de la surface d’une matrice de
maillage de la fonction surf
Exemple:
maillage de la fonction f(x,y)=x* exp −x^2−y^2,

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

Animations: de la surface d’une matrice de Animation Graphique


maillage de la fonction surf animé
fonction f(x,y)= sin(X^2+Y^2);
Exemple:
Exemple:
x = -pi/2:pi/100:pi/2; % génération de la surface à dessiner
y = x;
[X,Y] = meshgrid(x,y);
Z = sin(X.^2+Y.^2);
meshz(X,Y,Z); % dessin en fils de fer
grid
xlabel('x'), ylabel('y'), zlabel('z')
title('Animation de surface amorti par un sinus')
lim = axis; % pointeur sur les axes
n = 10; % nombre d'images
Anim = moviein(n,gcf);
figure(gcf) % fenêtre graphique courante en avant-plan

61
12/03/2026

Animation Graphique
fonction f(x,y)= sin(X^2+Y^2);

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


Définition:
MATLAB est bien adapté à la manipulation des images
✓ Une image numérique c’est une matrice de X×Y pixels
puisque l'élément de base de traitement sous MATLAB est la
(Picture élément) correspondant à l’échantillonnage et matrice, et une image n'est rien d'autre qu'une matrice dont
la quantification d’un signal acquis avec une caméra. chaque élément représente la couleur et l'éclairement d'un
✓ Une image est une matrice (tableau) de point et chaque pixel.
point est un « pixel », Chaque pixel contient une
Les techniques d’amélioration du contraste des images en
couleur.
niveaux de gris et en couleur se reposent sur le mappage des
✓ Chaque pixel est associé à un niveau de gris n ou des valeurs d’intensité , de l’égalisation de l’histogramme et de
niveaux de composante couleur codé sur N bits et qui l’ égalisation adaptive de l’histogramme limitée par le
représentent respectivement le niveau de luminosité ou contraste
de couleur de la zone Correspondante dans la scène
observée. Chaque pixel est localisé par ses coordonnées
x et y dans l’image.

62
12/03/2026

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


Les fonctions utiles pour gérer des images sont :
MATLAB dispose de fonctions permettant de manipuler des imread : Lit une image à partir d'un fichier Format standard
images dans différents formats dont : Imwrite : écrit une image dans un fichier Format standard
• BMP (Microsoft Windows Bitmap) image : Affiche une image (objet graphique image
• HDF (Hierarchical Data Format) imagesc : Affiche une image avec interpolation des couleurs
• JPEG (Joint Photographic Experts Group) imfinfo : Extrait des information d’un fichier Format standard
• PCX (Paintbrush) print : export une image Format standard
• PNG (Portable Network Graphics)
• TIFF (Tagged Image File Format) Chaque image est enregistrée dans un fichier *.mat et chacun de ces
• XWD (X Window Dump) fichiers comporte des variables;
➢ Le tableau contenant les pixels de l’image;
➢ La palette de couleurs associées( map)
MATLAB supporte trois classes différentes pour l'affichage
des images :
• double : Virgule flottante double précision
• unit 16 : entier 16 bits
• unit 8 : entier 8 bits

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


Formats supportés nativement par MATLAB
Format Lecture Ecriture
BMP imread imwrite, print Dans MATLAB , une image est représentée par une matrice
CUR imread de donnée n x m plus éventuellement une matrice palette
EMF print (colormap) k * 3. Trois type d'images sont ainsi traités :
EPS print • Les images indexées
GIF imread imwrite
• Les images monochromes ou à niveau de gris
HDF imread imwrite
ICO imread • Les images RGB (truecolor)
ILL print
JPEG/JPEG2000 imread imwrite, print 1. LES IMAGES INDEXÉES
PBM imread imwrite, print Une image indexée est représentée par une matrice index
PCX imread imwrite, print
(d'indices) n x m et une matrice colormap k * 3. Chaque
PGM imread imwrite, print
PNG imread imwrite, print élément de la matrice index est un indice qui pointe vers une
PNM imread imwrite, print ligne de la matrice colormap où se trouve le triplet R G B
PPM imread imwrite, print correspondant à la couleur du pixel.
RAS imread imwrite, print Pour visualiser une image indexée, on utilise les deux
TIFF imread imwrite, print
XWD imread imwrite
fonctions image et colormap.

63
12/03/2026

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


1. LES IMAGES INDEXÉES
dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
X = imread('[Link]','png');
1. LES IMAGES INDEXÉES
X = X(end:-1:1,:,:);
dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab'; n = 50;
[x,map]= imread('[Link]'); theta = (-n:2:n)/n*pi;
image(x) phi = (-n:2:n)'/n*pi/2;
colormap(map) cosphi = cos(phi); cosphi(1) = 0; cosphi(n+1) = 0;
sintheta = sin(theta); sintheta(1) = 0; sintheta(n+1) = 0;
r = 1;
x = r*cosphi*cos(theta);
y = r*cosphi*sintheta;
z = r*sin(phi)*ones(1,n+1);
surf(x,y,z,'facecolor','texturemap',...
'cdata',X,'edgecolor','none');
axis tight
axis equal
axis off
axis vis3d
cameratoolbar
cameratoolbar('setcoordsys', 'none')

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


1. LES IMAGES INDEXÉES

2. LES IMAGES MONOCHROMES


Une image monochrome est une image représentée par une
matrice n x m. Chaque élément de la matrice représente
l'éclairement d'un pixel. Normalement, les éléments de la
matrice sont stockés en format double, soit 64 bits en virgule
flottante. Pour réduire l'occupation de la mémoire,
MATLAB visualise les images monochromes en les traitant
comme des images indexées. La matrice image est convertie
en une matrice d'indice que l'utilisateur peur visualiser avec
la colormap de son choix.

64
12/03/2026

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


3. AMELIORATION DE L’IMAGE MONOCHROME
dir='F:\Dossier Cours\Langage de Programmation\Cours
2. LES IMAGES MONOCHROMES MatLab\scripte Matlab';
dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab'; X = imread('[Link]');
X = imread('[Link]'); size(X)
X = X(:,:,1); image(X);
colormap(bone);
imagesc(X); axis off, axis image X = X(:,:,1);
colormap(bone);
Y = histeq(X);
imshowpair(X,Y,'montage')
axis off; axis image;

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


3. LES IMAGES RGB (TrueColor) 3. LES IMAGES RGB (TueColor)
Les images RGB sont des images où chaque pixel est dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
représenté par une combinaison des trois couleurs de base a = imread('[Link]');
Red, Green et Blue. Chaque couleur est codée sur 8 bits ce size(a)
image(a); axis off; axis image;
qui fait que chaque pixel est codé sur 24 bits.

MATLAB stocke une image RGB n x m dans une matrice à


trois dimensions n x m x 3. Chaque plan de la matrice
représente une couleur. La couleur d'un pixel est obtenue par
la combinaison des trois couleurs situées à la position
correspondante dans la matrice.

65
12/03/2026

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


4. AMELIORATION DES IMAGES 4. AMELIORATION DES IMAGES
dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
rgbImage = imread('[Link]');
subplot(2, 1, 1);
imshow(rgbImage);
hsvImage = rgb2hsv(rgbImage);
[h, s, v] = imsplit(hsvImage);
subplot(2, 1, 2);
histogram(s);
xlim([0,2]);
grid on;
scalingFactor = 2.1;
s = scalingFactor * s;
histogram(s);
xlim([0,2]);
grid on;
hsvImage = cat(3, h, s, v);
rgbImage2 = hsv2rgb(hsvImage);
imshow(rgbImage2);

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


4. AMELIORATION DES IMAGES 4. AMELIORATION DES IMAGES
rgbImage = imread('[Link]');
rgbImage = imread('[Link]');

66
12/03/2026

MANIPULATION DE L’IMAGE MANIPULATION DE L’IMAGE


dir='F:\Dossier Cours\Langage de Programmation\Cours
MatLab\scripte Matlab';
[X,map]= imread('[Link]');
image(X)
colormap(map)
X = X(:,:,1);
colormap(bone);pause
imagesc(X); axis off, axis image
p = (0 : 0.01 : 1)';
z= zeros(size(p));
colormap([p z z]) , title('colormap(p z z)’);
pause
colormap([z p z]), title('colormap(z p z)');
pause
colormap([z z p]) , title('colormap(z z p)');
pause
colormap([p p z]) , title('colormap(p p z)');
pause
colormap([p z p]) , title('colormap(p z p)');
pause
colormap([z p p]) , title('colormap(z p p)');
pause

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

MANIPULATION DE L’IMAGE MANIPULATION DE L’IMAGE


dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
img = double(imread('[Link]'));
R = img(:,:,1); % Plan Rouge
G = img(:,:,2); % Plan Vert
B = img(:,:,3); % Plan Bleu
subplot(3, 2, 1);
imshow(uint8(img));
title ( "RGB" );
subplot(3, 2, 2);
N = cat(3, R,B,G );
imshow(uint8(N)); title ( "RBG" );
subplot(3, 2, 3);
N = cat(3, G,R,B );
imshow(uint8(N)); title ( "GRB" );
subplot(3, 2, 4);
N = cat(3, G,B,R );
imshow(uint8(N)); title ( "GBR" );
subplot(3, 2, 5);
N = cat(3, B,G,R );
imshow(uint8(N)); title ( "BGR" );
subplot(3, 2, 6);
N = cat(3, B,R,G );
imshow(uint8(N)); title ( "BRG" );

MANIPULATION DE L’IMAGE MANIPULATION DE L’IMAGE


dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
img = double(imread(chevaux [Link]'));
R = img(:,:,1); % Plan Rouge
G = img(:,:,2); % Plan Vert
B = img(:,:,3); % Plan Bleu
subplot(3, 2, 1);
imshow(uint8(img));
title ( "RGB" );
subplot(3, 2, 2);
N = cat(3, R,B,G );
imshow(uint8(N)); title ( "RBG" );
subplot(3, 2, 3);
N = cat(3, G,R,B );
imshow(uint8(N)); title ( "GRB" );
subplot(3, 2, 4);
N = cat(3, G,B,R );
imshow(uint8(N)); title ( "GBR" );
subplot(3, 2, 5);
N = cat(3, B,G,R );
imshow(uint8(N)); title ( "BGR" );
subplot(3, 2, 6);
N = cat(3, B,R,G );
imshow(uint8(N)); title ( "BRG" );

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')

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


5. RECADREMENT DES IMAGES 5. RECADREMENT DES IMAGES
Dans MatLab la fonction imcrop permet d’encadrer une Dans MatLab la fonction imcrop permet d’encadrer une
image image
Exemple : Exemple :
dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
I= imread('[Link]');
imshow(I)
[J,rect] = imcrop(I);
==============================
Recadrer l’image à l’aide de l’outil interactif
Pour bien récupérer les coordonnées de X et Y en pixels il faut
utiliser la souris de votre PC et tracez un rectangle sur la partie de
l'image à recadrer. Puis cliquer sur la souris droite vous allez
choisir Copy Position. Le rectangle de recadrage est un vecteur de
position a quatre éléments, [Xmin Ymin Largeur Hauteur].

69
12/03/2026

MANIPULATION DES IMAGES MANIPULATION DES IMAGES


5. RECADREMENT DES IMAGES 5. RECADREMENT DES IMAGES
Dans MatLab la fonction imcrop permet d’encadrer une Dans MatLab la fonction imcrop permet d’encadrer une
image image
Exemple : Exemple :
dir='F:\Dossier Cours\Langage de Programmation\Cours MatLab\scripte Matlab';
J= imread("chevaux [Link]");
I3 = imcrop(J,[[632 1 300 402]]);
subplot(1,2,1)
imshow(J)
title('Image des Chevaux de l IAVH')
subplot(1,2,2)
imshow(I3)
title('Image des Chevaux de l IAVH Recadrer')

MANIPULATION DES IMAGES


5. RECADREMENT DES IMAGES
Dans MatLab la fonction imcrop permet d’encadrer une
image
Exemple :

70

Vous aimerez peut-être aussi