Vous êtes sur la page 1sur 21

TP

MATLAB

Pr. ALAMI Ayoub

Année universitaire : 2021-2022

2022-2023
Tp - MATLAB
Voici quelques commandes d’environnement de MATLAB à retenir :
1. clc : permet d’effacer l’ensemble des commandes MATLAB introduite dans la zone de
commande.
2. clear all : permet de supprimer l’historique.
3. quit ou exit : permettent de quitter l’interface MATLAB.
4. tic et toc : calculent le temps mis par MATLAB pour exécuter une commande ou un script.
5. cputime : retourne le temps total en seconde mis par l’application MATLAB.
6. help : est la fonction la plus importante pour comprendre MATLAB. Afin d’avoir des
informations sur l’utilisation d’une fonction matlab :
>>help Nomfonction
7. lookfor : Cette fonction est utilisée lorsque on chercher une commande sans avoir une idée sur
le nom de cette commande :
>>lookfor sinus
8. doc : permet d’avoir une description détaillée avec des exemples :
>> doc sin
1. Arithmétique simple
MATLAB permet l’utilisation d’opérateurs arithmétiques classiques que sont + − / ∗ ^ pour
effectuer des opérations directement sur des nombres ou sur des variables après leur avoir affecté
des valeurs.

Exemples :

>> 2 + 2

ans =

L’addition ci-dessus est effectuée directement sur les nombres et le résultat est stocké dans la
variable par défaut ‘ans’ et affiché.

>> x = 2 + 2

x=

Le résultat de l’addition est stocké dans la variable ‘x’, grâce à l’opérateur d’affectation ’=’.

2
>> y = 3 + 5 - 7;

>> 2*y+2

ans =

On remarque que le résultat de la première opération ne s’affiche pas, car un point-virgule à la fin de
chaque instruction empêche l’affichage, chose très utile pour empêcher l’affichage de résultats
intermédiaires.

>> 4*(3-2)/7+5

ans =

5.5714

Lors de l’existence de plusieurs opérateurs dans une même expression les opérations suivent l’ordre
de priorité usuel.

Les types de variables

>> a=2 ;

>> b=’Bonjour’ ;

>> c=2+i ;

>> d=1==1 ;

>> who
Your variables are :
abcd

>> whos
Name Size Bytes Class Attributes
a 1×1 8 double
b 1×7 14 char
c 1×1 16 double complex
d 1×1 1 logical

3
2. Entrées/Sorties et formatage de données
2.1. Entrées/Sorties

MATLAB offre la possibilité de communication avec l’utilisateur grâce aux entrées/sorties de données
qui peuvent se faire à travers plusieurs manières différentes, dans cette introduction on ne
s’intéressera qu’à la communication par clavier.

Pour instruire au programme d’attendre la saisie d’une valeur pour ‘x’ on écrit :

>> x = input('Entrer une valeur pour x : ')

Le résultat est le suivant :

Entrer une valeur pour x : 5


x=
5

Quant à l’affichage de données, au lieu d’écrire le nom de la variable directement il y a d’autre


moyen pour afficher sa valeur à l’écran, deux commandes utiles sont ‘disp()’ et ‘fprintf()’ :

>> disp('la valeur de x : '), disp(x)


la valeur de x :
5
>> A=10 ;
>> disp(A)
10

>> A=10 ; B=’Bonjour’ ;


>> disp([’La valeur de A est :’, num2str(A),’ et la valeur de B est’,num2str(B)])
La valeur de A est : 10 et la valeur de B est : Bonjour

>> g = 19 ;

>> c = (5/9)*(19-32) ;

>> fprintf('%5.2f en Fahrenheit est égale à %5.2f en Centigrade. \n',g,c)

19.00 en Fahrenheit est égale à -7.22 en Centigrade.

2.2. Formatage de données

MATLAB offre plusieurs format qui permettent l’affichage de plus ou moins de ‘digits’ selon le
besoin :
>> format rat %forme rationnelle
>> pi
>> format long %forme décimale avec 14 digits
>> pi
>> format long e %forme exponentielle longue
>> pi
>> format hex %forme hexadécimale telle que représentée en mémoire
>> pi
4
>> format short e %forme exponentielle courte
>> pi
>> format short %forme par défaut à 4 digits
>> pi
Le signe ‘%’ permet de mettre un commentaire car tout ce qui vient après est ignoré.

3. Matrices et vecteurs
3.1. Initialisation

Les matrices sont saisies sur une seule ligne où les éléments consécutifs des lignes sont séparées par
un espace ou une virgule et les lignes sont séparées par un point-virgule, le tout doit être entre
crochets.

Exemple :

>> M = [2 6 3 ; 3 8 1 ; 1 5 3]

M=

2 6 3

3 8 1

1 5 3

Cas spéciaux : vecteurs et scalaires

Le vecteur est un cas spécial d’une matrice avec une seule ligne ou une seule colonne, tandis qu’un
scalaire est considéré par MATLAB comme une matrice 1x1 et n’a pas besoin de crochets lors de sa
saisie.

Exemples :

>> V_l = [2 6 3] %vecteur ligne

V_l =

2 6 3

>> V_c = [6 ; 8 ; 5] %vecteur colonne

V_c =

5
>> V_c = [6 8 5]' %vecteur colonne également (utilisation de la transposée)

V_c =

Continuation

S’il n’est pas possible d’écrire toute l’instruction sur une seule ligne on peut alors utiliser trois points
(…) pour signaler à MATLAB que la suite de cette instruction écrite sur la ligne en cours se fera sur la
ligne suivante.

Exemple :

>> M = [4 8 6 ; 4 3 ...

15 ; 0 4 7]

M=

4 8 6

4 3 15

0 4 7

3.2. Appel d’éléments

Une fois qu’une matrice ou qu’un vecteur existent on peut accéder à leurs éléments en spécifiant les
indices de leur ligne et de leur colonne. La notation M(i,j) spécifie donc, l’élément de la matrice M
existant sur la ligne i et la colonne j, ce qui est une chose commune pour les logiciels de calcul
scientifique et les langages de programmation. Cependant, MATLAB permet une plus grande
flexibilité au niveau de la manipulation des matrices dans le sens où il permet la spécification d’un
ensemble de ligne et de colonne en même temps grâce au caractère ‘:’.

Exemples :

>> V = [1 3 5 7 9] ; % on peut créer ce vecteur de la façon suivante >> A=[1 :2 :10] ;

>> V(2) %donne le 2ème élément du vecteur

>>W = V(3:5) %donne les éléments du 3ème jusqu’au 5ème

>> V(:) %retourne le vecteur sous forme de vecteur colonne

>> V(end) %retourne le dernier élément du vecteur

6
Concaténation de deux vecteurs :

>> A=[1 2 3] ;
>> B=[4,5] ;
>> C=[A B]
C=
12345

Opérations vectorielles

>> A=[1 2 3] ;
>> B=[10 20 30] ;
>> A+B
ans=
11 22 33
>> B-A
ans=
9 18 27

>> A*B
Error using *
Inner matrix dimensions must agree.
>> A.*B
ans=
10 40 90

Regardez l'effet des instructions suivantes.


>>x=rand(1,5)
>>mean(x)
>>std(x)
>>median(x)
>>sort(x)
>>A=rand(3)
>>sort(A)
>>[B, I]=sort(A)
>>sort(A')
>>max(A)
>>max(A')
>>max(max(A))
>>sum(A)
>>cumsum(A)
>>prod(A)
>>diff(A)
>>D=A([1,2],1:3)
>>sum(D,1)
>>sum(D,2)

7
MATRICES : M(indice_ligne, indice_colonne)

>> M = [5 7 6 ; 4 9 6 ; 7 8 3] ;

>> M(3,2) %retourne la valeur ?

>> M(5) %retourne la valeur ?

>> M(2:end,1:2) %retourne les éléments sur la 2ème et 3ème ligne et la 1ère et 2ème colonne

>> M(1,:) %retourne toute la première ligne

>> M(2 :3,:) %retourne les éléments de M de la ligne 2 à 3

>> M(:,3) %retourne toute la dernière colonne

>> M(:,1 :2) % retourne les éléments de M de la colonne 1 à 2

3.3. Matrices et vecteurs commun

MATLAB offre plusieurs commande pour aider à la génération et à la manipulation des matrices, ces
commande appelées ‘matrices d’utilité’ permettent de créer des matrices et vecteurs communs.

Exemples :

>> eye(3) % Matrice unité de taille 3x3

>> zeros(3) % Matrice nulle de taille 3x3

>> ones(3) % Matrice de 1 de taille 3x3

Il existe également des commandes permettant de créer des matrices contenant des variables
aléatoires générées selon les lois de probabilité uniforme ou normale ‘rand’ et ‘randn’ ainsi que des
commandes permettant la création de vecteurs constitués de suite de nombre équidistants où l’on
peut préciser le pas.

Exemples :

>> V = linspace(1,5,10) % Un vecteur constitué de 10 valeurs équidistantes entre 1 et 5

V=

Columns 1 through 7

1.0000 1.4444 1.8889 2.3333 2.7778 3.2222 3.6667

Columns 8 through 10

4.1111 4.5556 5.0000

8
>> V = 1:7 %Vecteur contenant des valeurs allant de 1 à 7 avec un pas de 1

V=

1 2 3 4 5 6 7

>> V = 7:-1:1 %Vecteur contenant des valeurs allant de 7 à 1 avec un pas de -1


V=

7 6 5 4 3 2 1

3.4. Opérations sur les matrices :

Opérations usuelles

Les opérations usuelles sur les matrices peuvent être effectuées directement à l’aide des opérateurs
arithmétiques ce qui constitue un grand avantage par rapport aux autres langages de
programmation.

Exemples :

>> A = [1 2 3 ; 4 5 6] ;

>> d = ones(2,1) ;

>> A'*d

ans =

>> B = [3 4 ; 0 1] ;

>> C = [2 1 ; 0 1] ;

>> C/B

ans =

0.6667 -1.6667

0 1.0000

9
Opération élément par élément

MATLAB permet également d’effectuer des opérations élément par élément pour la multiplication, la
division et la puissance et ceci en utilisant les opérateurs : .∗ ./ . ^

Exemple :

>> V = [ 7 5 9]; V.^2

ans =

49 25 81

Opérations avancées sur les matrices

>> A = [4.1 2.7 3.9 ;5.4 1.5 9.3] ;


>> find(A>3)

>> l = find(A>3)
>> A(l) = 0
Ou simplement on peut écrire :
>> A(find(A>3))=0
>>A=[1 2 3; 2 3 1 ; 3 1 2] ;
>>[B,I]= find(A==1) %Retourne les coordonnées égales à 1, ainsi que leur position

3.5. Opérateurs relationnels et logiques

 Opérateurs relationnels

MATLAB propose six opérateurs relationnels qui ont comme résultat un vecteur ou une matrice,
ayant la même taille que les opérandes, contenant la valeur 1 quand la relation est vraie et 0 quand
elle est fausse.

Ces opérateurs sont :

< inférieur
<= inférieur ou égal
> supérieur
>= supérieur ou égal
== égal
~= différent

Exemple :

>> A = [8.7 7.1 2.4 8.4 6.1;1.2 0.4 8.2 6.4 2.7;2.3 6.7 6.5 5.2 10] ;
>> B = (A < 3)

Exercice : réaliser l’opération de valeur absolue sur une matrice sans le mot clef find mais en utilisant les
matrices de booléens.
Solution :
>> k = (A<0)
>> k = -2*k + 1
>> A = A.*k
10
 Opérateurs logiques

Il y’en a quatre, ces opérateurs fonctionnent de la même manière que les opérateurs relationnels et
produisent également des vecteurs et matrices contenant des 1 quand la relation est vraie et 0
quand elle est fausse.

Ces opérateurs sont :

& ET logique
| OU logique
~ Négation
xor OU exclusif

En addition à ces opérateurs MATLAB propose également plusieurs fonctions logiques telles que :

all %retourne 1 si tous les éléments d'un vecteur satisfont une condition
any %retourne 1 si l'un des éléments d'un vecteur satisfait une condition
find %retrouve les indices d'éléments non nuls d'une matrice

Utiliser help pour savoir plus...

4. Fichiers script et fonction


4.1. Scripts

A travers son éditeur MATLAB offre la possibilité de créer des scripts, qui sont des fichiers
d’extension ‘.m’ regroupant une suite d’instruction. Un script peut être exécuté en écrivant son nom
dans le ‘prompt’, son exécution est équivalente à la saisie des instructions une par une dans la
fenêtre de commande.

Un fichier script peut contenir un nombre quelconque de commande ainsi que des appels à des
fonctions déjà existantes ou écrites par l’utilisateur.

4.2. Fonctions
4.2.1. Fichier fonction

Un fichier fonction est également un fichier d’extension ‘.m’ il commence par une ligne de définition
ayant la syntaxe suivante :

function [ output_arguments ] = function_name( input_arguments )

Il faut faire attention à ce que le nom de la fonction ‘function_name’ soit le même que le nom du
fichier dans lequel la fonction est enregistrée.

L’appel de la fonction peut se faire à travers la saisie de son nom et des arguments correspondants.
Les arguments de sorties, quand ils ne sont pas importants, peuvent être omis lors de l’appel.

11
Exemple :

function [a,p] = APDisque(r)


%---fonction calculant l'aire et le périmètre d'un disque de rayon r---%

a = pi.*r^2;
p = 2.*pi.*r;

end

L’appel à la fonction dans le ‘prompt’ se fait par :

>> [a,p] = APDisque(2)

4.2.2. Fonctions anonymes

Dans le cas d’une fonction ayant une structure simple, au lieu de créer un fichier on peut utiliser un
‘handle’ pour créer une fonction anonyme sur une seule ligne, sa syntaxe est la suivante :

handle = @(arglist)anonymous_function

‘handle’ est le nom qui sert à l’appel et à la manipulation de la fonction.

Exemple :

>> f = @(x, y) x.^2 - sin(y) +exp(x^y)

f=

@(x,y)x.^2-sin(y)+exp(x^y)

>> f(5,2)

ans =

7.2005e+10

5. Boucles et Contrôle de flux


5.1. Boucle : for indice = i_début : pas : i_fin – end

La boucle ‘for’ permet une exécution répétitive d’un bloc d’instruction pour un nombre prédéfini de
fois, elle possède la syntaxe suivante :

for i = indice_début : pas : indice_fin


%%bloc d'instructions
end

Dans MATLAB il est d’usage d’initier l’indice dans les boucles à ‘1’ et non pas à ‘0’ pour éviter les
erreurs lors de la manipulation des vecteurs et matrices puisque l’appel des premiers éléments de
ces derniers se fait à travers l’indice ‘1’.

On peut forcer l’arrêt de n’importe quelle boucle en utilisant l’instruction break.

12
Exemple1:

>> v = rand(1,5);
>> disp(v)
0.8003 0.1419 0.4218 0.9157 0.7922
>> for k = v
>> disp('La valeur de k est ‘)
>> disp(k)
>>end
La valeur de k est 0.8003

La valeur de k est 0.1419

La valeur de k est 0.4218

La valeur de k est 0.9157

La valeur de k est 0.7922

Exemple2: calcul de la somme des éléments d’un vecteur.


V = [1 4 7 10 13 16];
S = 0;
for i = 1 : length(V)
S = S + V(i);
end
S
Exemple3:
>> A = rand(3,2);
>> disp(A)
0.8147 0.9134
0.9058 0.6324
0.1270 0.0975
>>for i = A
>> disp(‘La valeur de i est ‘)
>> disp(i);
>>end
La valeur de i est
0.8147
0.9058
0.1270
La valeur de i est
0.9134
0.6324
0.0975
Exemple4:
>> v = rand(4,1);
>> disp(v)
0.9572
0.4854
0.8003
0.1419
>>for i = v
>> disp(‘La valeur de i est ‘)
13
>> disp(i)
>>end
La valeur de i est
0.9572
0.4854
0.8003
0.1419

5.2. Boucle : while condition – end


La boucle ‘while’ permet de répéter un bloc d’instruction tant qu’une condition prédéfinie est vraie,
sa syntaxe est la suivante :

while condition
%%bloc d'instructions
End

Exemple1:
V = [1 4 7 10 13 16];
S = 0;
i = 1;
while i < 7
S = S + V(i);
i = i+1;
end
S

Dans l’exemple ci-dessus la boucle ‘while’ effectue la même opération que pour la boucle ‘for’ à
savoir, le calcul de la somme des éléments du vecteur ‘V’.
Exemple2: Qu’affiche ce programme ?
a = input('Entrez une valeur entière : ');
s=1;
while a>1
s = s*a;
a = a-1;
end
disp(s)
Exemple3: Qu’affiche ce programme ?

a = input('Entrez une valeur : ');


b = input('Entrez une valeur : ');
n = min(a,b);
while ~(mod(a,n)==0 && mod(b,n)==0)
n=n-1;
end
disp(n)

5.3. if condition – elseif condition – else - end et switch – case – end

Ayant une condition basée sur un opérateur logique ou relationnel, l’instruction conditionnelle if est
utilisée pour ajuster l’ordre dans lequel les blocs d’instructions devront être exécutés. Quant au bloc
switch case il est utile pour remplacer un if – elseif – elseif… – end multiple d’une manière habile,
leur syntaxe est la suivante :

14
 Choix simple

if condition
%%bloc d'instructions
End
 Choix multiple

if condition1
%bloc d'instructions
elseif condtion2
%bloc d'instruction
elseif condition3
%bloc d'instructions
else
%bloc d'instructions
end

Autre façon plus simple d’exprimer un choix multiple :

switch expression
case cas1, %bloc d'instructions
case cas2, %bloc d'instructions
case cas3, %bloc d'instructions
otherwise %bloc d'instructions
end
Exemples :
Bloc de choix simple
Exemple1 :
t = 0;
if t>0
signe = +1;
else
signe = -1;
end
signe
Exemple2
x = input(‘Entrez une valeur : ‘);
y = input(‘Entrez une autre valeur : ‘);
if x>0 && y>0
disp(‘Les deux valeur entrées sont positives’)
end

Bloc de choix multiples


Exemple1
point = 8 ;
if point >= 9, apprec = 'Excellent' ;
elseif point >= 8, apprec = 'Très bien' ;
elseif point >= 7, apprec = 'bien' ;
elseif point >= 6, apprec = 'assez bien' ;
else apprec = 'moyen' ;
end
disp(apprec)
Exemple2
x = input('Entrez une valeur : ');
y = input('Entrez une valeur : ');
z =input('Entrez votre choix d’opération : ');
if z==1
disp(x+y)
elseif z==2
15
disp(x*y)
elseif z==3
disp(x-y)
elseif z==4
disp(x/y)
else
disp(‘Mauvais choix’)
end
Bloc switch
point = 7.5 ;
switch floor(point) %floor retourne l’entier inférieur ou égal à point
case 9, apprec = 'Excellent';
case 8, apprec = 'Très bien';
;
case 7, apprec = 'bien';
case 6, apprec = 'assez bien';
otherwise apprec = 'assez bien';
end
disp(apprec)

6. Graphiques
Pour la visualisation de données, MATLAB propose de très bon outils qui vont d’un simple graphe en
2D jusqu’à des illustrations tridimensionnelles animées, la manipulation des graphiques est simple et
intuitive, nous présentons dans ce qui suit les outils de base pour les utiliser correctement sur
MATLAB.

6.1. Graphiques 2D

La commande de base pour un graphique bidimensionnel sur MATLAB est la commande ‘plot’, elle
s’écrit :

plot(valeur_X, valeur_Y, 'option_de_style')

Les options de style sont résumées dans le tableau suivant :

Options de couleur Option de ligne Options de marqueur


y : Jaune - solide + : singe plus
m : magenta -- hachurée O : cercle
c : cyan : pointillé * : astérisque
r : rouge -. tiret-point x : marque x
g : vert . : point
b : bleu ^ : triangle
w : blanc s : carré
K : noir d : diamand

Titres, labels, échelles et légendes :

L’annotation d’un graphique peut se faire grâce aux commandes ‘xlabel’, ‘ylabel’, ‘title’ et ‘text’ qui
écrivent du texte respectivement sur l’axe des abscisses, l’axe des ordonnées, au-dessus du
graphique et sur un point dont les coordonnées sont donnés en arguments.

La légende peut être produite à travers la commande ‘legend’ qui est plutôt versatile, dans le sens où
elle peut prendre une grande quantité d’arguments.
16
Contrôle des axes :

En utilisant la commande :

axis([xmin xmax ymin ymax])

On arrive à changer les limites des axes, on peut alors utiliser cette commande pour un zoom in ou
un zoom out sur une partie du graphique.
Exemple1 :
>> x = [0 : pi/40 : 2*pi]; % Abscisse de 0 à 2*pi par pas de pi/40.
>> y = cos(x); % Valeur de la fonction.
>> figure; % Nouvelle fenêtre.
>> plot(x, y); % Tracer.
>> title(‘tracé de la fonction cos’); % Titre de la figure.
>> xlabel(‘x’); % Légende en abscisse.
>> ylabel(‘y’); % Légende en ordonnée.
>> gtext(‘texte’); % Ajouter du texte.

Un graphique, plusieurs fonctions :

Il est possible de tracer plusieurs courbes sur le même graphique. Pour ce faire, il existe deux
méthodes. La méthode la plus simple est d’utiliser la commande ‘plot’ qui est la plus intuitive, sa syntaxe
pour plusieurs fonctions est la suivante :

plot(x1, y1, 'options', x2, y2, 'options', x3, y3, 'options')

Exemple2 :

>> f1 = @(x) (1./(sqrt(2*pi))).*exp(-(x.^2)./2) ;


>> f2 = @(x) (1./(2*sqrt(2*pi))).*exp(-(x.^2)./8);
>> f3 = @(x) (1./(0.5*sqrt(2*pi))).*exp(-(x.^2)./(2*0.5^2));
>> x1=[-pi:0.1:pi] ;
>> plot(x1, f1(x1), x1, f2(x1), x1, f3(x1))
>> xlabel('x')
>> ylabel('y')
>> grid on
>> title('densité de la loi normale')

17
Exemple3 :

>> figure; % Nouvelle fenêtre.


>> x = [0 : pi/40 : 2*pi];
>> y1 = cos(x); % Fonction 1.
>> y2 = sin(x); % Fonction 2.
>> plot(x, y1, x, y2,’r’); % Tracé des deux fonctions y1 et y2.
>> legend(‘y1 = cos(x)’,’y2 = sin(x)’); % Légende sur graphique.
Ou :
>> figure; % Nouvelle fenêtre.
>> x = [0 : pi/40 : 2*pi];
>> y1 = cos(x); % Fonction 1.
>> y2 = sin(x); % Fonction 2.
>> hold on; % Maintient du graphique.
>> plot(x, y1); % Tracé de la droite y1.
>> plot(x, y2,’r’); % Tracé de la droite y2 en rouge.
>> legend(‘y1 = cos(x)’,’y2 = sin(x)’); % Légende sur graphique.

Partition des fenêtres :

Sur MATLAB on a la possibilité de créer plusieurs graphiques sur une seule fenêtre puisque la fenêtre
graphique est séparée en n fenêtre verticale et m fenêtre horizontales, on utilise la notation
suivante :

subplot(m, n, q), plot(x,y)

Où q est le graphique en cours.

Exemple4 :

>> figure; % Nouvelle fenêtre.


>> x = [0 : pi/40 : 2*pi];
>> y = cos(x);
>> subplot(2, 2, 1); % Zone supérieure gauche.
>> plot(x, y); % Tracé.
>> title(‘Normal’); % Titre de la figure.
>> subplot(2, 2, 2); % Zone supérieure droite.
>> plot(x, y,’r’); % Tracé en rouge.
>> title(‘En rouge’); % Titre de la figure.
>> subplot(2, 2, 3); % Zone inférieure gauche.

18
>> plot(x, y,’or’); % Tracé points ronds en rouge.
>> title(‘Cercle en rouge’); % Titre de la figure.
>> subplot(2, 2, 4); % Zone inférieure droite.
>> plot(x, y,’*−g’); % Tracé points étoiles relié en vert.
>> title(‘Etoiles en vert’); %Titre de la figure.

Exemple5 :

>> 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);
>> subplot(2,1,1)
>> plot(t,y,'r',t,z,'g')
>> grid
>> a=10*exp(-60*t);
>> hold on
>> plot(t,a,'b--')
>> plot(t,-a,'b--')
>> title('Fonctions sinusoidales amorties')
>> xlabel('Temps , s')
>> ylabel('Tension , V')
>> subplot(2,1,2)
>> plot(y,z)
>> grid
>> axis equal
>> xlabel('y'),ylabel('z')
Recherche :
Chercher le fonctionnement des fonctions suivantes :
clf area errorbar line

Nuages de points
Matlab permet l’affichage de nuages de points. Pour ce faire, il faut lui fournir les coordonnées
des points en deux vecteurs x et y.
Exemple6 :

>> x=[1 2 5 6 8 7 9 5] ; % Coordonnée en x des points.


>> y=[5 4 3 6 2 7 5 3] ; % Coordonnée en y des points.

19
>> gscatter(x, y); % Affichage.

Histogramme et autres
Il est aussi possible d’afficher les données de différentes manières comme par exemple en
histogramme ou en distribution cumulative (fonction de répartition).
Exemple7 :

>> x=[1 2 5 6 8 7 9 5]; % Coordonnée en x des points.


>> subplot(2, 2, 1); % Zone supérieure gauche.
>> hist(x); % Histogramme.
>> subplot(2, 2, 2); % Zone supérieure droite.
>> cdfplot(x); % Fonction de répartition.
Recherche :
Chercher le fonctionnement des fonctions suivantes :
bar pie stairs stem
Tracé de fonctions en utlisant la commande fplot
La commande fplot permet de tracer la courbe d'une fonction y = f(x) dont on spécifie
l'expression sous forme d'une chaîne de caractères 'f(x)'. Cette expression peut être
remplacée par le nom d'un fichier M (fichier de fonction) dans lequel est programmée la
fonction f.
La syntaxe est la suivante : fplot(@(x) expression, [xMin xMax])
Exemple8- tracer la fonction suivante : sin(2−𝑥2) 𝑎𝑣𝑒𝑐 𝑥∈[−𝜋,𝜋]
>> fplot(@(x) sin(2-x.^2), [-pi pi])
>> grid
>> title('Tracé de y = sin(2-x^2) avec fplot')
>> xlabel('x dans l’intervalle [-\pi \pi]')

6.2. Graphique 3D

Les courbes 3D
Pour la représentation des courbes tridimensionnelles, la fonction plot3 constitue l’extension de plot.

Exemple :

Le tracé de la fonction z = (2 - x2 ) (2 - y2) sur la diagonale du carré [-2, 2] s’obtient par :

>> x = [-2:0.1:2];
>> y = x; % définie la diagonale
>> z = (2-x.^2).*(2-y.^2); % évalue la fonction
>> plot3(x, y, zeros(1,length(x)), x, y, z, 'LineWidth',1.5)
>> grid on
>> xlabel('x')
20
>> ylabel('y')
>> zlabel('z')

Les surfaces 3D
Dans la représentation tridimensionnelle des surfaces, les fonctions mesh et surf sont les analogues de
la fonction plot.
Les surfaces sont définies dans MATLAB par trois matrices x,y,z dont les composantes sont des
coordonnées dans l’espace des points appartenant à la surface.
Exemple1 : Soit la fonction à deux variables : 𝑧=(cos(𝑥2+ 𝑦2))/(𝑥2+ 𝑦2). On génère deux matrices
carrées X et Y qui définissent le domaine de calcul de z, on utilisera pour ceci la fonction meshgrid. La
fonction z est ensuite évaluée et les données sont stockées dans Z. On utilise ensuite la fonction mesh
pour dessiner la surface représentative de la fonction.
>> x = -pi:pi/10:pi;
>> y = x;
>> [X,Y] = meshgrid(x, y);
>> Z = cos(X.^2+Y.^2)./(X.^2+Y.^2);
>> mesh(X,Y,Z)
>> xlabel('angle x= -\pi : \pi')
>> ylabel('angle y= -\pi : \pi')
>> title('cos (x^2+y^2)/(x^2+y^2)')
Exemple2 :
>> x = linspace(0,5,6) ;

>> y = linspace(0,5,6) ;

>> [X Y] = meshgrid(x,y) ;

>> Z = X.^2.*Y.^2;

>> mesh(Z)

21

Vous aimerez peut-être aussi