TP - Initiation MATLAB
Lenvironnement de travail de MATLAB est souple dutilisation (langage interprete) et tr`es evolutif
car il permet soit de travailler interactivement en passant des commandes au clavier (comme pour une
calculatrice), soit de realiser des programmes (scripts) ou des fonctions en placant ces commandes dans
des fichiers texte, le nom de ces fichiers constituant alors de nouvelles commandes MATLAB.
1.1
Proc
edure de d
emarrage de lenvironnement
1.2
1.3
Notion de script
Un script MATLAB est une succession de commandes stockee dans un fichier ayant pour extension
.m (par exemple, prog.m). Pour executer le script, il suffit de taper son nom (prog par exemple) en
ligne de commande. Si le script prog.m se trouve dans le repertoire de travail courant, alors MATLAB
sera capable de lire le fichier et dexecuter toutes les commandes quil contient, les unes `a la suite des
autres.
Toute ligne commencant par le caract`ere % sera consideree comme une ligne de commentaire (`
a
utiliser sans moderation dans votre code).
MATLAB est labreviation de Matrix Laboratory et comme son nom lindique, toutes les entites
(ou variables) manipulees sont des matrices.
1
TP - Initiation MATLAB
2.1
Cr
eation de variables
Pour declarer de telles variables, il suffit de specifier un nom pour la variable (par exemple toto)
et de lui attribuer une valeur (par exemple lentier 4 ou la chane de caract`eres chat).
Type de variables
Representation MATLAB Exemple de declaration
scalaire
matrice 1 1
toto = 4
vecteur ligne `
a n elements
matrice 1 n
toto = [ 1 2 ]
vecteur colonne `
a m elements
matrice m 1
toto = [ 1 ; 2 ]
matrice `
a m lignes et n colonnes matrice m n
toto = [ 1 2 3 ; 4 5 6 ]
I Comment voir les variables courantes ainsi que leurs proprietes ?
Routines `
a utiliser :
whos, size, length
2.1.1
Variables pr
ed
efinies
Variables complexes
Autres techniques de cr
eation de variables
De nombreuses routines MATLAB permettent de creer des variables avec des valeurs particuli`eres.
Matrices simples
I Comment generer une matrice remplie de zeros ? remplie de uns ?
I Comment generer une matrice identite ?
Routines `
a utiliser :
zeros, ones , eye
Vecteurs `
a pas constant
I Comment generer un vecteur ligne contenant les valeurs de a `a b par pas de p ?
I Comment generer un vecteur ligne contenant k valeurs egalement espacees entre les bornes a et
b incluses ?
Routines `
a utiliser :
: , linspace
Matrices al
eatoires
I Comment generer un vecteur ligne de n valeurs qui suivent une loi normale ?
I Comment generer un vecteur colonne de m valeurs qui suivent une loi uniforme ?
Routines `
a utiliser :
randn , rand
Cr
eation de matrices par assemblage
I Comment assembler deux (ou plus) scalaires / vecteurs / matrices pour produire un nouveau
vecteur ou matrice ?
TP - Initiation MATLAB
2.2
Manipulation de matrices
2.2.1
Acc`
es `
a une plage de valeurs (sous-matrices)
Il est important de remarquer que contrairement `a certains langages de programmation tels que C,
le premier element dun vecteur a pour indice 1 et non 0.
I Comment acceder `
a la valeur dindice k dune matrice ligne ? dune matrice colonne ? dune
matrice `
a deux dimensions ?
I Comment extraire les valeurs comprises entre les indices k1 et k2 dun vecteur colonne, sous la
forme dun vecteur colonne ?
I Extrapoler pour une matrice bi-dimensionnelle ?
I Comment extraire une ligne enti`ere dune matrice bi-dimensionnelle ?
2.2.2
Matrice transpos
ee
Op
erateurs arithm
etiques
el
ementaires
Operateur
+
*
.*
/
./
Semantique
Addition
Soustraction
Produit matriciel
Produit terme `
a terme
Division
Division terme `
a terme
Elevation `
a une puissance
Elevation `
a une puissance terme `a terme
I Essayer les differents operateurs arithmetiques presentes. Observer la difference entre les deux
operateurs de produit.
2.2.4
Il est possible dappliquer quantite dautres fonctions mathematiques `a des variables (scalaires,
vecteurs ou matrices terme `
a terme). Parmi les plus utilisees, on retrouve
sin , cos , tan , exp , sqrt , log , abs
I Generer un signal sinusodal damplitude a = 2, de frequence = 50Hz, de duree T = 100ms
sur n = 500 echantillons.
I Les fonctions min et max existent sous MATLAB. Poss`edent-elles le comportement que les fonctions precedentes ?
I De meme pour les fonctions sum, mean ou std.
Affichage graphique
Une des forces de MATLAB est de permettre la representation graphique sous forme de courbes
ou dimages, des differents objets manipules.
3.1
TP - Initiation MATLAB
3.2
3.2.1
Graphique 2D
Affichage dune courbe
I Afficher plusieurs courbes superposees, chaque courbe correspondant `a un signal sinusodal genere
avec une amplitude differente des autres. Chaque courbe poss`ede egalement des attributs (couleurs et
traces) differents.
I Superposer une sinusode dephasee dune demi-periode.
Routines `
a utiliser :
plot , hold
3.2.3
I Meme travail que la question precedente dans des graphes separes au sein dune fenetre unique.
Routines `
a utiliser :
plot , subplot
3.3
Image
I Toute matrice peut etre visualisee sous la forme dune image. Visualiser sous cette forme une
matrice que vous avez dej`
a manipulee.
I Charger une image (au format JPEG, par exemple) sous la forme dune matrice et visualiser-la.
I Changer la palette utilisee pour afficher limage.
Routines `
a utiliser :
imread , image , imagesc, colormap
Organisation du code
4.1
4.2
Notion de fonction
La notion de fonction permet de factoriser une portion de code pour une reutilisation plus aisee.
Cette factorisation se traduit par
la creation dun fichier dextension.m contenant ce code,
une formalisation des entrees (param`etres) et des sorties (resultats retournes) de ce code,
un environnement dexecution separe pour ce code (notion de variables locales)
TP - Initiation MATLAB
4.2.1
D
eclaration dune fonction
Application directe
I Ecrire une fonction GenereSignal2 qui produit un signal de longueur n = 250 correspondant `
a
une sinusode pure de frequence = 0.1Hz, echantillonnee `a f = 1Hz.
Probl`
emes simples
1. Construire un vecteur A dechantillons gaussiens, de taille N = 1000, de variance 2 = 0.8 et de
moyenne M = 2. Afficher lhistogramme des echantillons. Essayer pour N = 10000.
2. Lestimation de la variance est donnee par la formule
N
X
2
2 = 1
(A(n) m
d
c
A)
A
N n=1
(1)
o`
um
d
A est lestimation de la moyenne de A.
N
1 X
m
d
A(n)
A =
N n=1
(2)