Vous êtes sur la page 1sur 12

ISI- UTM A.

U :
2023/2024

Matière : Technologies multimédia Auditoire :


L1CS

TP No1 Scripts et graphisme sous Matlab

Objectif :

L'objectif de ce TP est de vous initier au logiciel MATLAB de la compagnie Mathworks et à la


programmation dans cet environnement. L'idée est de vous exposer les bases de cet outil de travail.

I. Présentation et introduction à Matlab

Matlab est un logiciel et langage de programmation conçu pour fournir un environnement de calcul
numérique de haut niveau. Il est particulièrement performant pour le calcul matriciel, et dispose de
grandes capacités graphiques pour, par exemple, la visualisation d’objets mathématiques complexes.

Le nom MATLAB vient de la contraction MATrix LABoratory, ce qui signifie que toutes les variables
sont considérées comme des matrices. Une variable scalaire est vue par MATLAB comme une matrice
1x1 (une ligne, une colonne), comme le montre l’exemple suivant dans lequel on affecte à la variable
x la valeur 5 et on demande ensuite ses dimensions par la commande size
On remarque qu’après l’affectation de la variable, MATLAB affiche de suite la valeur affectée. Afin
d’éviter ceci, il suffit de suivre la commande par un point-virgule, ce qui permettra éventuellement des
programmes plus rapides (pas de perte de temps dû à l’affichage)

MATLAB, en tant que langage scientifique, a prévu des constantes prédéfinies :

L’utilisateur peut affecter donc des valeurs à des variables et affecter des opérations à ces variables ( +
- / * …).

Ici, il faut noter que lorsque l'utilisateur ne fixe pas de variable de sortie, MATLAB place le résultat
d'une opération dans ans. Cette variable temporaire peut bien sûr être utilisée pour un calcul suivant
comme le montre l’exemple précédent.

Il est toujours possible de connaître les variables utilisées et leur type à l'aide de la fonction whos. Par
exemple, pour les manipulations précédentes : Ces variables sont aussi présentes dans l’onglet espace
de travail (Workspace).
La solution de x+y a donc été perdue. Il est donc préférable de toujours donner des noms aux variables
de sortie :

La fonction clear permet d'effacer des variables. Par exemple :

Le signe de pourcentage (%) permet de mettre ce qui suit sur une ligne en commentaire (MATLAB
n'en tiendra pas compte à l'exécution).

II. Opérations mathématiques avec MATLAB : Scalaires, vecteurs, matrices

Les scalaires se déclarent directement, par exemple :

Un vecteur colonne de dimension n est une matrice nx1. Un vecteur ligne de dimension n est une
matrice 1xn.

Les vecteurs lignes et Les vecteurs colonnes se déclarent de la manière suivante :


Le double point ( : ) est l'opérateur d'incrémentation dans MATLAB. Ainsi, pour créer un vecteur
ligne de valeurs de 0 à 1 par incrément de 0,2, il suffit d'utiliser (notez le nombre d'éléments du
vecteur) :

On peut accéder à un élément d'un vecteur et même modifier celui-ci directement

Les opérations usuelles d'addition, de soustraction et de multiplication par scalaire sur les vecteurs
sont définies dans MATLAB :
Dans le cas de la multiplication et de la division, il faut faire attention aux dimensions des vecteurs en
cause. Pour la multiplication et la division élément par élément, on ajoute un point devant l'opérateur
(.* et ./). Par exemple :

On peut aussi créer des matrices, par exemple,

Les matrices peuvent aussi être construites directement de deux façons différentes :

Exercice 1 :
1 -Ouvrir un nouveau script et taper le programme suivant :
a=2 ;
b=5 ;
c=(a+b)/2 ;
disp (c)

2- Nommer et sauvegarder un script


Remarques importantes :

 Le script doit avoir une extension de la forme « .m ».


 Dans l’appellation des scripts, Il faute éviter :
 D’utiliser les caractères désignant un opérateur spécifique à Matlab tel que
« -», « ; », « * »,…etc.
 D’utiliser le nom d’une fonction Matlab telle que : sqrt, sin, cos,…etc.
 D’utiliser deux mots séparées (par exemple : program st, program 1).

3- Exécution d’un script

Pour exécuter un script, on écrit tout simplement son nom dansla fenêtre de commandes puis on clique
sur entrer.
Si le script contient une (des) erreur(s), la ligne contenant l’erreur ainsi le type d’erreurs sont affichées
dans la fenêtre des commandes.

Exercice 2:
Soit M, la matrice définie par :

12 24 36 58
2 6 8 10 ¿La sous matrice M1
7 9 11 13

Ecrire un script Matlab qui permet d’extraire :


 L’élément situé dans la troisième ligne et la quatrième colonne.
 Le vecteur L3 contenant tous les éléments de la troisième ligne.
 Le vecteur C4 contenant tous les éléments de la quatrième colonne.
 La sous matrice M1du matrice M, constitué à partir de l’intersection de la deuxième et la
troisième colonne avec la deuxième et la troisième ligne.
 La matrice M2 dont ses lignes sont celles de la matrice M mais afficher en sens inverse.

7 9 11 13
M 2= 2 6 8 10
12 24 36 58

 Mettre tous les éléments de la deuxième ligne égaux à deux.

Remarque : En se référant aux informations du tableau suivant après avoir tester les commandes à
coté:
A=[1 2 3 4; 12 13 14 15]
A(2,3)
A(2,:)
A([1 3 5 7])
A(:,4)
A([1 1 1])
A([1 3; 4 8])
A([2 3 5]) = [-1 -1 -1]
A(:,4)=[101 103]’
A(2,2)=999

III. Graphisme sous « Matlab »


1. Représentation graphique 2D
a) Tracer un graphe.
Pour tracer un graphe en 2D, on fait appel à la fonction Matlab « plot ».

Exemple :
Soit F, un vecteur défini par : F= [1 20 14 12 10 11 25 26 14 45 23 45 1 20 14 12 10 11 25]
Pour représenter graphiquement le vecteur F, on peut taper tout simplement : plot (F).
Pour tracer, la fonction y définie par : y ( t ) =sin ⁡( 0.3 πt)
 Il faut tout d’abord déclarer le vecteur t
 Taper en suite la formule de y.
c.à.d : y=sin ⁡(0.3 πt)
Remarquez vous que nous avons écrit seulement y et non pas y(t) ?
 Finalement tracer le graphe de y(t) en utilisant la fonction « plot ».

clear all;
clc;
t= [0 : pi/100 :2* pi] ;
y= sin(0.3*pi*t) ;
plot(t, y)

Exécutez votre programme.


b) Quadrillage, titres, couleurs, trait.

Quadrillage :
* Ajouter la commande suivante au programme précédant : grid
* Sauvegarder les modifications. ( file save)
* Exécutez votre programme.
Que remarquez-vous ? Quel est le rôle de la fonction « grid » ?

Titres :
- le titre principal.
* Ajouter au programme précédent la commande suivante : title(‘le graphe de la fonction y(t)’)
* Sauvegarder les modifications.
* Exécutez votre programme.
Quel est le rôle de la fonction « title » ?

- les titres des axes :


* Ajouter au programme précédant les commandes suivantes :
xlabel(‘le temps t’)
ylabel(‘la fonction y’)
* Sauvegardez les modifications.
* exécutez votre programme.
Quel est le rôle des deux commandes « xlabel » et « ylabel »?
les couleurs
* remplacer l’expression plot(t, y) par l’expression plot (t, y,’r’)
* Sauvegardez les modifications.
* exécutez votre programme.
Que remarquez-vous ?
le type de trait
* remplacez l’expression plot (t, y,’r’) par l’expression plot (t, y,’+r’)
* Sauvegardez les modifications.
* exécutez votre programme.
Que remarquez-vous ?

Remarques importantes

1. Pour qu’on puisse écrire plot(t,y), il faut que les vecteurs t et y soient de la même taille.
2. Il faut écrire correctement les commandes.
3. La représentation graphique doit permettre de visualiser les détails de la fonction tracée.
4. On peut faire un ZOOM pour agrandir une région du graphe.
5. Pour savoir plus sur les différents types de trait et de couleurs tapez : help plot

c) Tracer deux graphes


1) Tracer deux graphes dans deux fenêtres graphiques séparées

Pour tracer deux graphes dans deux fenêtres graphiques séparées, on peut taper : fenêtre(n) où n
représente le numéro de la fenêtre graphique.
Exemple
clear all;
clc
t= [0 : pi/100 : 2*pi] ;
y=sin (0.3*pi*t) ;
y1=cos(0.3*pi*t);
figure(1)
plot(t, y)
grid
title('le graphe de la fonction y(t)')
xlabel('le temps t')
ylabel('la fonction y')
figure(2)
plot(t, y1)
grid
title('le graphe de la fonction y1(t)')
xlabel('le temps t')
ylabel('la fonction y1')

2) tracer deux graphe dans la même fenêtre graphique.

En utilisant la fonction « hold »


On peut tracer deux ou plusieurs graphes dans la même fenêtre graphique en utilisant la fonction
« hold ».

Exemple
clear all;
clc
t= [0 : pi/100 : 2*pi] ;
y=sin (0.3*pi*t) ;
y1=cos(0.3*pi*t);
plot(t, y)
grid
hold
plot(t, y1,’r’)

Conseil : Lorsqu’on trace deux graphes dans une même fenêtre, il est conseillé d’utiliser deux couleurs
différentes ou bien deux types de trait différents.
En utilisant la fonction « subplot »
La deuxième méthode pour tracer plusieurs graphes dans une même fenêtre consiste à utiliser la
fonction « subplot ». Cette fonction permet de subdiviser la fenêtre graphique utilisée en plusieurs
sous fenêtres.
Chacune de ces sous fenêtres se comporte comme une fenêtre à part.
La syntaxe de cette commande est la suivante :
Subplot(n,m,k) avec n : nombre de lignes.
m : nombre de colonnes.
k : la position du graphe.

Exemple
clear all;
clc
t= [0: pi/100: 2*pi];
y=sin (0.3*pi*t) ;
y1=cos (0.3*pi*t);
y2=sin (0.3*pi*t)+cos (0.3*pi*t);
y3=sin (0.3*pi*t)-cos (0.3*pi*t);
subplot(2,2,1);plot(t, y)
grid
subplot(2,2,2);plot(t, y1)
grid
subplot(2,2,3);plot(t, y2)
grid
subplot(2,2,4);plot(t, y3)
grid

2. Représentation graphique 3D
En utilisant la fonction « plot3 »

La commande « plot3 » est similaire à la commande « plot » sauf qu’on ajoute un troisième axe Z.

Exemple
t = 0:0.1:10*pi;
x = exp(-t/20).*cos(t);
y = exp(-t/20).*sin(t);

z = t;
plot3(x,y,z);
xlabel('x');
ylabel('y');
zlabel('z');
grid

Une fois le tracé apparait, vous pouvez modifier la rotation des axes. Ceci est possible soit en utilisant
la flèche (figure) soit en tapant la commande « view » dans le programme.
Flèche de rotation

t = 0:0.1:10*pi;
x = exp(-t/20).*cos(t);
y = exp(-t/20).*sin(t);
z = t;
subplot(2,2,1);plot3(x,y,z);
xlabel('x');
ylabel('y');
zlabel('z');
view(-10,10);
title('Default plot3');
grid
subplot(2,2,2);plot3(x,y,z,'og');
xlabel('x');
ylabel('y');
zlabel('z');
view(-9,56);
title('Az=-10, El=10');
grid
subplot(2,2,3);plot3(x,y,z,'xb');
xlabel('x');
ylabel('y');
zlabel('z');
view(0,90);
title('Az=0, El=90');
grid
subplot(2,2,4);plot3(x,y,z,'dr');
xlabel('x');
ylabel('y');
zlabel('z');
view(90,0);
title('Az=90, El=0');
grid

3. Signaux particuliers

Quel est le type de signal généré par les scripts MatLab suivants :

Script 1 Script 2
t=-10:1:20; t = -1:1e-5:1 ;

Imp=[zeros(1,10),ones(1,1),zeros(1,20)]; x1 = rectpuls(t, 0.05);

stem(t,Imp); plot(t,x1) ;

xlabel(’Temps index´e en n’); axis([-0.1 0.1 -0.2 1.2]);

ylabel(’Amplitude’); xabel(’Temps(sec)’);

ylabel(’Amplitude’);

Script 3 Script 4

t = -1:1e-5:1 ; fs = 10000 ;

x2 = tripuls(t,0.04); t = 0:1/fs:1.5;

plot(t,x2); y1 = sawtooth(2*pi*50*t);

axis([-0.1 0.1 -0.2 1.2]); plot(t,y1);

xlabel(’Temps (sec)’); axis([0 0.1 -1.2 1.2]);

ylabel(’Amplitude’); xlabel(’Temps (sec)’);

ylabel(’Amplitude’);

Vous aimerez peut-être aussi