Vous êtes sur la page 1sur 14

Prise en main du logiciel Matlab 3

I- BUT DE LA MANIPULATION
Le but de ce TP est de se familiariser avec le logiciel Matlab qui sera utilisé pour tous les TP
de traitement de signal. Matlab (MATrix LABoratory) est un logiciel de calcul numérique,
calcul matriciel et de représentations graphiques.

La première partie est une introduction à Matlab, la deuxième partie se compose de plusieurs
exercices.

II- INTRODUCTION A MATLAB


II-1 DEMARRAGE
Pour lancer l’exécution de Matlab sous Windows, il faut effectuer un double clic sur l’icône
de Matlab. Une fois Matlab est parti, un environnement s’affiche à l’écran, composé de
plusieurs fenêtres, les plus importantes sont (Fig1) :

Répertoire de travail
Ligne de commande
Variable en mémoire

Fenêtre de commande

Historique de commandes Permet de visualiser le contenu du


répertoire de travail

Fig1. Fenêtre de commandes Matlab

- Current Directory : vous indique le répertoire courant.


- Command History : regroupe les commandes passées.
- Workspace : vous donne les variables en mémoire; leur type et leur taille.
- Command Window : la fenêtre de commande.
L’invite ‘’>>’’ de Matlab appelé prompt doit alors apparaître, à la suite duquel vous entrerez
les commandes. Pour exécuter une opération, il faut toujours appuyer sur la touche ‘’entrer’’
du clavier.

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


4 Prise en main du logiciel Matlab

II-1-1 Fenêtre de commande


La fonction ‘’quit ‘’ permet de quitter Matlab.
La commande ‘’help’’ permet de donner l’aide sur un problème donné.
La commande ‘’who’’ affiche le nom de variables actives.
La commande ‘’whos’’ donne plus d’information : le nom, la taille du tableau (nombre de
lignes et de colonnes…

Pour effacer l’espace de travail, tapez : >> clc. Ceci effacera toute la fenêtre de commande,
mais pas les variables créées dans la fenêtre ‘’Workspace’’.

Pour complètement effacer le Workspace et toutes les variables en mémoire, tapez dans la
fenêtre de commande : >> clear.

Il est possible de ne détruire qu’une partie des variables en tapant : >> clear nom-var.
nom-var, est le nom de la variable détruite.

II-1-2 Syntaxe d’une ligne de commande


Il faut terminer l’opération par ‘’;’’ (point virgule), sinon toutes les étapes du calcul seront
affichées sur l’écran.
Pour réafficher un résultat contenu dans une variable, il suffit de taper le nom de la variable
ou utiliser la commande ‘’disp’’.

Exemple : Essayer de taper les instructions suivantes :

a = 25
a = 25 ;
a
disp(a)

Si une commande est trop longue pour tenir sur une ligne, il est possible de poursuivre sur la
ligne suivante et terminant la ligne par trois points (…).

II-2 VECTEUR

II-2-1 Définition d’un vecteur


Le moyen le plus simple de saisir un vecteur est d’entrer ses éléments en les séparant par les
blancs ou par les virgules.

Le vecteur ligne est :

>> x = [6 4 7] ;

Ou bien x = [6, 4, 7] ;

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


Prise en main du logiciel Matlab 5

On définit un vecteur colonne en donnant la liste de ses éléments séparés par des points
virgules ou par des retours chariots :

>> y = [6 ; 4 ; 7] ;

Ou bien
y = [6
4
7]

La commande ‘’size’’ permet d’obtenir les dimensions d’un vecteur donné. Les dimensions
d’un vecteur peuvent être récupérées sous forme d’un vecteur [m n] :
m : nombre de lignes
n : nombre de colonnes

>> size(x)

Matlab place le résultat d’une opération dans ans.

Exemple :

>> x = [1 5 8]; size(x)


ans =
1 3

Ce vecteur est considéré comme une matrice à une ligne et 3 colonnes.


La longueur d’un vecteur quelconque est par définition sa plus grande dimension, la syntaxe
est :

>> length(x)

Exemple : Trouver les longueurs des vecteurs suivants :


x1 = [1 2 3] ; x2 = [4,5,6,7] ; x3 = [8 ;9;10]

>> x1 = [1 2 3]; length(x1)


ans =
3

Matlab offre deux fonctions ‘’linspace’’ et ‘’logspace’’ qui créent des vecteurs lignes.

linspace(E1,En,n) : crée un vecteur de n éléments régulièrement espacés, le premier étant E1


et le dernier En.

logspace(exp1,exp2,n) : crée un vecteur de n éléments espacés de manière logarithmique. La


liste commence à 10exp1 et se termine à 10exp2.

Exemple : Le vecteur de 1001 éléments dont le premier est -400, le dernier est 600 est donné
par :

linspace(-400,600,1001)

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


6 Prise en main du logiciel Matlab

II-2-2 Elément d’un vecteur


Pour récupérer une composante d’un vecteur, il faut spécifier son indice entre parenthèse.

Exemple : le troisième élément du vecteur x = [11 22 23 14 25 16] est donné par :

>> x = [11 22 23 14 25 16]; x(3)


ans =
23
La commande ‘’end’’ donne le dernier terme.

Si les composantes d’un vecteur sont espacées d’un pas constant et si la première et la
dernière valeur sont connues, alors ce vecteur peut être décrit de la manière suivante :

>> debut = 0; fin = 2; pas = 0.25; x = debut : pas : fin


x=
0 0.2500 0.5000 0.7500 1.0000 1.2500 1.5000 1.7500 2.0000

Le pas est de 1 par défaut.

II-2-3 Opérations
L’addition et la soustraction des vecteurs de même dimension se font élément par élément.

Exemple :

>> x = [5 4 8]; y = [9 2 7]; x + y


ans =
14 6 15

Ajouter ou retrancher un scalaire à un vecteur revient à ajouter ou retrancher le scalaire à


toutes les composantes du vecteur.

De même, la multiplication et la division d’un vecteur par un scalaire sont réalisées sur toutes
composantes du vecteur.

La transformation d’un vecteur ligne en un vecteur colonne et inversement sera réalisée à


l’aide de l’opération de transposition ‘’ ’ ’’.

Le produit d’un vecteur colonne de taille n par un vecteur ligne de taille m donne une matrice
de dimensions (n,m).

Exemple :

>> y = [1;2;3]; x = [5 4 8 2]; y*x


ans =
5 4 8 2
10 8 16 4
15 12 24 6

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


Prise en main du logiciel Matlab 7

En précédant d’un point les opérateurs ‘’*, /, \ et ^’’, on réalise des opérations élément par
élément.

u = [u1, u2, u3].* v = [v1, v2, v3] = [u1*v1, u2*v2, u3*v3]

Exemple :

>> x = [1 5 3]; y = [2 6 7]; x.*y


ans =
2 30 21

>> x.^2
ans =
1 25 9

II-2-4 Fonctions
Plusieurs fonctions opérant directement sur les vecteurs sont disponibles sous MATLAB :
sum : somme des composantes d’un vecteur.

>> x = [1 2 5]; sum(x)


ans =
8

prod : produit des composantes d’un vecteur.

>> x = [1 2 5]; prod(x)


ans =
10

sqrt : racine carrée des composantes d’un vecteur.

>> x = [1 2 5]; sqrt(x)


ans =
1.0000 1.4142 2.2361

fliplr (flip left-right) : échange les positions des éléments du vecteur x de gauche à droite.

> x = [1 2 5 8 3 4]

x=

1 2 5 8 3 4

>> fliplr(x)

ans =

4 3 8 5 2 1

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


8 Prise en main du logiciel Matlab

flipud (flip up-down): échange les positions des éléments du vecteur x de haut en bas.

>> x = [1 5 8;2 6 9]
x=

1 5 8

2 6 9

>> flipud(x)

ans =

2 6 9

1 5 8

II-3 MATRICE

II-3-1 Définition d’une matrice


Un vecteur n’est autre qu’une matrice à une ligne ou à une colonne. Une matrice peut être
écrite comme une suite de vecteurs lignes, séparés par des points virgules ou par des retours
chariots.

>> a = [1 2 5; 8 6 9]
a=
1 2 5
8 6 9

>> a = [1 2 5
8 6 9]
a=
1 2 5
8 6 9

On définit une matrice vide en écrivant :

>> m = [ ]

II-3-2 Eléments d’une matrice


L’élément de la deuxième ligne et de la quatrième colonne peut être récupéré en écrivant :

>> a = [1 4 5 9 ; 11 14 16 19 ; 21 23 25 28 ; 34 35 36 39]; a(2,4)


ans =
19

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


Prise en main du logiciel Matlab 9

A partir d’une matrice, on peut écrire une autre matrice, un vecteur ou l’un de ses éléments, à
l’aide du symbole deux point ‘’ : ‘’.

Pour obtenir la première ligne :

>> a = [1 4 5 9 ; 11 14 16 19 ; 21 23 25 28 ; 34 35 36 39]; a(1,:)


ans =
1 4 5 9

Pour obtenir la troisième colonne :

>> a = [1 4 5 9 ; 11 14 16 19 ; 21 23 25 28 ; 34 35 36 39]; a(:,3)


ans =
5
16
25
36

II-3-3 Matrices particulières


1. Matrice identité
eye(m,n) : matrice identité de dimension m x n.

eye(n) : matrice identité de dimension n x n (matrice carrée).

> eye(3)
ans =
1 0 0
0 1 0
0 0 1

2. Matrice nulle
zeros(m,n) : matrice de zéros de dimension m x n.

>> zeros(2,3)
ans =
0 0 0
0 0 0

3. Matrice unité
ones(m,n) : matrice unité de dimension m x n.

>> ones(2,4)
ans =
1 1 1 1
1 1 1 1

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


10 Prise en main du logiciel Matlab

4. Matrice aléatoire
rand(m,n) : matrice à m lignes et n colonnes dont les éléments sont générés d’une manière
aléatoire entre 0 et 1.

>> rand(2,4)
ans =
0.8147 0.1270 0.6324 0.2785
0.9058 0.9134 0.0975 0.5469

Pour une matrice carrée unité, nulle ou aléatoire, il suffit d’indiquer l’ordre comme seul
argument des fonctions ones, zeros et rand.

II-3-4 Opérations et fonctions portant sur les matrices

1. Multiplication
Si la matrice a est de taille (m,n) et b de taille (n,p) alors a*b a pour taille (m,p).

>> a = [2 3 1;3 2 4] ; b = [4 6;2 3;1 5]; a*b


ans =
15 26
20 44

C’est le produit matriciel :

a11 a12   b11 b12   a11 . b11 + a12 . b21 a11 . b12 + a12 . b22 
 . = 
a 21 a 22  b21 b22  a 21 . b11 + a 22 . b21 a 21 . b12 + a 22 . b22 

2. Puissance
>> a = [9 4;5 3]; a^2
ans =
101 48
60 29

3. Opération élément par élément


Il est possible d’effectuer des opérations entre matrices ‘élément par élément’, il faut faire
précéder l’opérateur d’un point.

a11 a12   b11 b12   a11 . b11 a12 . b12 


 . = 
a 21 a 22  b21 b22  a 21 . b21 a 22 . b22 

>> a = [2 4;5 8]; b = [11 3;7 6]; a.*b


ans =
22 12
35 48

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


Prise en main du logiciel Matlab 11

Les fonctions matricielles les plus courantes sont :

det(a) Le déterminant de la matrice a


eig(a) Les valeurs propres de la matrice a
inv(a) L’inverse de la matrice a
rank(a) Le rang de la matrice a
trace(a) La trace de la matrice a

II-4 GRAPHIQUES
La commande plot(x , y ) permet de tracer des courbes ou nuages de points du vecteurs y en
fonction de x. x et y sont des vecteurs de données de mêmes dimensions.

II-4-1 Style et couleur des lignes


Il est possible de choisir le style et la couleur des lignes avec la commande
plot(x,y,’color_style_type’).

Couleurs type de ligne style de ligne


y Jaune . point - trait continu
m Magenta ○ cercle : pointillés
c Cyan x croix -. trait point
r Rouge + plus -- trait trait
g Vert * étoile
b Bleu s Carré
w Blanc d losange
k Noir v triangle
^ triangle
< triangle
> triangle
p pentagone
h hexagone

Si aucune option n’est déclarée, le type de tracé est par défaut de couleur noire, de trait
continu.
La commande ‘’grid’’ permet d’ajouter le quadrillage. ‘’grid off’’ supprime le quadrillage du
graphique courant.

II-4-2 Placer des titres et des commentaires


La commande ‘’title’’ ajoute un titre au graphique. La syntaxe est : title(‘texte du titre’).
Les commandes ‘’xlabel’’, ‘’ylabel’’ permettent de définir des titres pour les axes des
coordonnées. La syntaxe est : xlabel(‘texte axe x’).

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


12 Prise en main du logiciel Matlab

La commande ‘’text’’ permet d’ajouter un texte explicatif à plusieurs endroits d’un


graphique. La syntaxe est : text(1,-3,’courbe de f(x)’). Cette commande place la chaîne de
caractères ’courbe de f(x)’ aux points de coordonnées (1, -3).
La commande ‘’gtext’’ permet de placer un texte à un endroit d’un graphique choisi par
l’utilisateur à l’aide de la souris. La syntaxe est : gtext(‘graphe de f’).
La commande ‘’axis’’ permet de limiter l’axe des x et des y à un intervalle pré déterminé par
l’utilisateur. Par exemple, axis ([0 10 0 20]) limite l’axe des x aux valeurs de 0 à 10 et celui
des y de 0 à 20.

II-4-3 Ajouter des courbes à une figure existante


Un plot provoque l’effacement du dessin précédent (par défaut). La commande ‘’hold on’’
permet de tracer plusieurs courbes dans le même graphique. La commande ‘’hold off’’ la
désactive.
La commande ‘’figure’’ ouvre une nouvelle fenêtre graphique, figure1 si aucune fenêtre
graphique n’existe, figure n+1 si la fenêtre graphique n existe déjà. La commande ‘’figure’’
doit précéder la commande ‘’plot’’.

II-4-4 Partage de la figure


La commande ‘’subplot(m,n,p)’’ permet de présenter côte à côte plusieurs graphes. La
commande offre (m x n) figures réparties sur m lignes et n colonnes.
p : sert à spécifier dans quelle sous fenêtre doit s’effectuer l’affichage. La numérotation se fait
de gauche à droite et ligne par ligne.

Exemple : Tracer les fonctions suivantes sur une même page : sin(t), cos(t), e-t et sin(t).e-0.1t.
t=0:0.01:30;
x=sin(t);
z=cos(t);
y=exp(-t);
r=sin(t).*exp(-0.1*t);
subplot(2,2,1)
plot(t,x)
grid;
title('sin(t)') sin(t) cos(t)
xlabel('t') 1 1
ylabel('x')
subplot(2,2,2) 0 0
x

plot(t,z,'m:')
grid; -1 -1
0 10 20 30 0 10 20 30
title('cos(t)') t t
xlabel('t') exp(-t) sin(t).exp(-0.1t)
1 1
ylabel('z')
subplot(2,2,3)
0.5 0
plot(t,y,'r')
y

grid;
0 -1
title('exp(-t)') 0 10 20 30 0 10 20 30
xlabel('t') t t
ylabel('y')
subplot(2,2,4)

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


Prise en main du logiciel Matlab 13

plot(t,r,'--g')
grid;
title('sin(t).exp(-0.1t)')
xlabel('t')
ylabel('r')

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


14 Prise en main du logiciel Matlab

III- EXERCICES

EXERCICE 1 :

Soit la matrice suivante :


Mat 34 = [11 12 13 14 ; 21 22 23 24 ; 31 32 33 34]
Quelle est la dimension de cette matrice ?
Taper linspace(-1,2,10).

EXERCICE 2 :

1) Entrer la commande : a = rand(5). Essayez les commandes :


a(2,1) , a(1:3,1) , a( :,2) , a(1, :) , a([1 4], :) , a(1 :2 :5, :).

2) Taper b = [1 2 3 ; 4 5 6], puis rand(1,3] et rand (size(b)).

3) Taper ones(size(b)) et eye(size(b)).

4) Quel est l’effet de chacune de ces deux commandes ?


>>1 + 1 : 5 et
>>1 + (1 : 5).

EXERCICE 3 :

Définir une matrice A(3x3).


1) Mettre à zéro l’élément (3,3).

2) Changer la valeur de l’élément dans la deuxième ligne, sixième colonne. Que se passe-t-il ?

3) Mettre tous les éléments de la quatrième colonne à 4.

4) Créer B en prenant les lignes de A en sens inverse.

5) Créer C en accolant toutes les lignes de la première et troisième colonne de B à la droite de


A.

6) Créer D sous matrice de A faite des deux premières lignes et les deux dernières colonnes
de A.

EXERCICE 4:

Calculer si c’est possible le produit u*v, u*v’, u’*v, et u.*v des vecteurs suivants en
analysant la réponse de Matlab :

(a) u = (2, 3,1, -4) et v = (2,1)


(b) u = (0... − 25) et v = (0...25)

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


Prise en main du logiciel Matlab 15

EXERCICE 5:
 1 −2 0  − 5 3 2
Soient les matrices suivantes : A = − 4 5 − 6 , B =  0 −2 6 
 
 11 8 10   7 0 25
2 0 − 1 
et C =  .
9 12 − 13

Que donne les instructions suivantes : A*B, A.*B, A*C, A.*C, C*A, A./B, B./C,

EXERCICE 6 :

Entrer les commandes suivantes :


x=1 :3 :10 ; plot(x)
y= rand(4,1) ; plot(y) puis plot(x,y,’g’). Interpréter la différence de ces deux commandes.

Faculté des Sciences et Techniques Tanger Département de Génie Electrique


Faculté des Sciences et Techniques Tanger Département de Génie Electrique

Vous aimerez peut-être aussi