Vous êtes sur la page 1sur 47

Formation Matlab

ENSEIRB, FILIERES ELECTRONIQUE ET TELECOMMUNICATIONS, 1


ERE
ANNEE
ANNEE 2005-2006


Formation Matlab 1
TABLE DES MATIERES

NOTE TECHNIQUE : LANCEMENT DE MATLAB SOUS WINDOWS ET SOUS UNIX: ................................................. 4
PARTIE N 1 MATLAB : COMMANDES DE BASE ET INTRODUCTION AUX CALCULS
MATRICIELS 5
1.1 DESCRIPTION DE LA FENETRE DE COMMANDE DE MATLAB................................................................... 5
1.2 EXPLORATION DES BIBLIOTHEQUES...................................................................................................... 7
1.2.1 Matlab et ses bibliothques ............................................................................................................. 7
1.2.2 Commande help............................................................................................................................... 8
1.2.3 Commande lookfor .......................................................................................................................... 8
1.2.4 Localisation de la fonction utilise ................................................................................................. 9
1.2.5 Autres commandes .......................................................................................................................... 9
1.3 COMMANDES DE GESTION DE LESPACE DE TRAVAIL............................................................................ 9
1.3.1 Introduction..................................................................................................................................... 9
1.3.2 Matlab comme simple calculateur ................................................................................................ 10
1.3.3 Nombre complexe.......................................................................................................................... 11
1.3.4 Mathmatiques, gomtrie ............................................................................................................ 11
1.3.5 Ecriture directe dune matrice ou dun vecteur ............................................................................ 11
1.3.6 Gestion des variables dans lespace de travail : commandes whos, clear, format ....................... 12
1.4 OPERATIONS DIRECTES SUR LES MATRICES......................................................................................... 13
1.4.1 Oprations arithmtiques :............................................................................................................ 13
1.4.2 Oprations relationnelles et logiques............................................................................................ 13
1.5 MANIPULATIONS SUR LES ELEMENTS MATRICIELS.............................................................................. 13
1.5.1 Manipulation des indices .............................................................................................................. 13
1.5.2 Valeurs particulires ..................................................................................................................... 14
1.6 MATRICES CREUSES (HELP SPARFUN) ................................................................................................ 14
1.7 MATRICE ET CHAINE DE CARACTERES ................................................................................................ 14
1.8 BILAN ET EXERCICE DAPPLICATION................................................................................................... 15
1.8.1 Ce quil faut (au minimum) retenir ! ............................................................................................. 15
1.8.2 Exercice dapplication 1 ............................................................................................................... 16
PARTIE N 2 SUR CERTAINES FONCTIONS DEDIEES AU CALCUL......................................... 17
2.1 INITIALISATION ET MANIPULATION..................................................................................................... 17
2.2 ALGEBRE LINEAIRE............................................................................................................................. 18
2.2.1 Fonctions lmentaires ................................................................................................................. 18
2.2.2 Fonctions de dcomposition.......................................................................................................... 18
2.3 OPERATIONS SUR LES DONNEES.......................................................................................................... 19
2.3.1 Gnration alatoire ..................................................................................................................... 19
2.3.2 Analyse des donnes...................................................................................................................... 19
2.4 OPERATIONS SUR LES POLYNOMES..................................................................................................... 19
PARTIE N 3 LEMENTS DE PROGRAMMATION......................................................................... 21
3.1 INTRODUCTION................................................................................................................................... 21
3.2 SCRIPT ................................................................................................................................................ 21
3.2.1 Dfinition dun script .................................................................................................................... 21
3.2.2 Construction dun script................................................................................................................ 21
3.3 FONCTIONS ......................................................................................................................................... 22
3.3.1 Introduction................................................................................................................................... 22
3.3.2 Dfinition ...................................................................................................................................... 22
3.3.3 Exemple de fonction ...................................................................................................................... 23
3.4 STRUCTURES DE PROGRAMMATION USUELLES.................................................................................... 23
3.4.1 Structure de type test ..................................................................................................................... 24
3.5 BILAN ET EXERCICES DAPPLICATION : CREATION D'UNE FONCTION .................................................. 26
PARTIE N 4 GRAPHISME.................................................................................................................... 27
4.1 PREAMBULE........................................................................................................................................ 27
4.2 NOTION DE FIGURE ............................................................................................................................. 27
4.3 AFFICHAGE DES COURBES 2D............................................................................................................. 28
4.3.1 Commande plot ............................................................................................................................. 28
Formation Matlab 2
4.3.2 Commande fplot ............................................................................................................................ 29
4.3.3 Commande subplot........................................................................................................................ 29
4.3.4 Commande axis ............................................................................................................................. 30
4.4 AFFICHAGE DES COURBES 3D............................................................................................................. 30
4.4.1 plot3 : arguments vectoriels.......................................................................................................... 30
4.4.2 Fonctions arguments matriciels ................................................................................................. 31
4.4.3 meshgrid........................................................................................................................................ 31
4.4.4 plot ................................................................................................................................................ 32
4.4.5 contour et contour3....................................................................................................................... 33
4.4.6 mesh et surf ................................................................................................................................... 33
4.4.7 image............................................................................................................................................. 34
4.4.8 colormap et colorbar..................................................................................................................... 34
4.4.9 view ............................................................................................................................................... 35
4.5 GRAPHES SPECIALISES ........................................................................................................................ 36
4.5.1 Barres et surfaces.......................................................................................................................... 36
4.5.2 Camemberts................................................................................................................................... 36
4.6 EXERCICE : GRAPHISME ET FONCTIONS............................................................................................... 37
4.7 AUTRE EXERCICE................................................................................................................................ 38
4.8 EXERCICE IMAGES .............................................................................................................................. 38
PARTIE N 5 FICHIERS DE DONNEES............................................................................................... 39
5.1 FICHIERS MATLAB.............................................................................................................................. 39
5.1.1 Commande save ............................................................................................................................ 39
5.1.2 Commande load ............................................................................................................................ 39
5.2 FICHIERS BINAIRES ET ASCII: LE FORMAT STANDARD........................................................................ 40
5.2.1 Commande fopen........................................................................................................................... 40
5.2.2 Commande fread ........................................................................................................................... 41
5.2.3 Commande fwrite .......................................................................................................................... 42
5.2.4 Commande fclose .......................................................................................................................... 42
5.2.5 Commande fprintf.......................................................................................................................... 42
5.3 EXERCICE ........................................................................................................................................... 42
PARTIE N 6 APPLICATIONS............................................................................................................... 43
6.1 RAPPELS SUR LE DEVELOPPEMENT EN SERIE DE FOURIER ET TRANSFORMEE DE FOURIER.................. 43
6.2 EXERCICE ........................................................................................................................................... 45
6.2.1 Dcomposition en srie de Fourier, reprsentation spectrale et somme de srie ......................... 45
Formation Matlab 3
INTRODUCTION
Lobjectif de cette formation est de se familiariser au logiciel Matlab, applicatif ddi au
calcul scientifique le plus utilis dans les laboratoires universitaires et industriels tel que le
CEA, Thomson, le CNES, etc.
A lorigine, la toute premire version de Matlab fut mise en uvre aux Universits du
Nouveau Mexique et de Stanford, la fin des annes 70. Elle se destinait essentiellement
lanalyse numrique et lalgbre linaire. Depuis, Matlab est devenu un outil que lon peut
utiliser pour mener des simulations dans de trs nombreux domaines (traitement du signal,
traitement dimage, automatique, statistique, aronautique, etc.) et pour dvelopper des
applications avec une interface graphique.
Cette formation traite plus particulirement la dclaration et la gestion des donnes (matrice,
chane de caractres, etc.), la cration dun programme et la gestion dun espace de
dveloppement, la cration de fonctions et gestion des bibliothques et des fichiers de
donnes.
Ce logiciel sera en outre utilis tout au long de votre formation lcole et dans lindustrie,
notamment sur des thmes lis aux probabilits, processus alatoires, filtrage et plus
gnralement le traitement du signal et des images ainsi que lautomatique.
Formation Matlab 4

Note technique : Lancement de Matlab sous Windows et sous UNIX:

A l'ENSEIRB, Matlab est install la fois sous Windows et sous UNIX. La procdure de
lancement est diffrente dans les deux cas.

Sous Windows, Matlab se trouve dans le menu Dmarrer.

Sous UNIX, il faut le lancer partir de la ligne de commande. La procdure suivre est la
suivante:
Avant de vous loguer, assurez vous que le terminal est en mode graphique 24 bits.
Pour cela, entrez votre login, puis ouvrez le menu "Option" de l'cran de login, et
choisissez "Session" puis "Switch 24 bit plans". Validez votre mot de passe. L'cran
devrait clignoter, puis l'cran de login rapparat. Rerentrez votre login en choisissant
cette fois un type de session classique (par exemple "Gnome 2.0"). Le mode 24 bits
permet aux applications de bnficier de millions de couleur pour l'affichage, alors
que le mode 8 bits ne permet que 256 couleurs distinctes. Lorsque Matlab est lanc
alors que le moniteur est en mode 8 bits, il affiche un message d'avertissement
indiquant que le nombre de couleurs disponibles est insuffisant. Cela ne pose aucun
problme, part le fait que les couleurs peuvent apparatre fantaisistes dans les
fentres qui ne sont pas actives. Utilisez la procdure dcrite prcdemment si cela
vous gne.
Dans un terminal, tapez le chemin d'accs complet vers l'excutable Matlab, puis
validez. Selon la version dsire, (Matlab 6.5 ou Matlab 7), le chemin est diffrent.
D'une manire gnrale, Matlab 6 est plus rapide et Matlab 7 offre plus de
fonctionnalits en terme d'interface graphique. Les chemins d'accs sont:
o /opt/matlab/bin/matlab pour Matlab 6.5
o /opt/matlabr14/bin/matlab pour Matlab 7
Le lancement de Matlab sous UNIX peut prendre un peu de temps, car le logiciel doit
tre charg travers le rseau. Une fois lanc, il devrait cependant ragir
normalement. Soyez patients.


Si Matlab gnre une erreur de license au dmarrage due au gestionnaire de licenses FlexLM,
cela peut tre du
Nombre trop important de personnes utilisant Matlab en parallle
Problme d'accs au gestionnaire de licenses si vos variables d'environnement sont
mal configures. Tapez la commande suivante avant de ressayer :
o source /opt/matlab/ENSEIRB.README
Formation Matlab 5
PARTIE N 1 MATLAB : COMMANDES DE BASE ET
INTRODUCTION AUX CALCULS
MATRICIELS
1.1 Description de la fentre de commande de Matlab
Lancer Matlab, en utilisant le menu dmarrer. Selon les versions du logiciel, on obtient lun
des deux fentres de commande suivantes. Le charg de cette formation montrera
ventuellement la mise en uvre dun raccourci. Avec la version prcdente, on a :



Menus droulants Barre doutils
Boutons de gestion de la fentre Descriptif de la fentre
Barre de dfilement vertical
Barre de dfilement horizontal
prompt de Matlab
Formation Matlab 6
A partir des versions 6 et 7, la fentre de commande ("prompt") est complte par des fentres
utilitaires permettant de visualiser les fichiers du rpertoire courant ou les variables dfinies
dans le workspace courant, ce qui correspond aux commandes ls et whos.


Figure n1 : fentres Matlab
Il existe quatre menus droulants :
- File : le menu fichier permet notamment daccder des fichiers dj existants ou
de crer de nouvelles procdures et des nouveaux programmes. Il permet
aussi de quitter Matlab. Les derniers programmes ouverts sont en outre
indiqus.
- Edit : le menu dition permet daccder aux commandes classiques : copier, couper,
coller, slectionner tout, etc.
- Window : le menu Fentre donne accs aux diffrentes fentres de Matlab ouvertes.
- Web : spcifique Matlab 6.1.
- Help : cest le menu daide.
Le soulignement des lettres F, E, W et H des menus File, Edit, Window, Help indique le
raccourci clavier pour ouvrir le menu droulant sans laide de la souris. On effectue alors la
commande alt+lettre souligne.
Comme dans les logiciels Word et Excel, on peut aussi exploiter la barre doutils. Cette
dernire comprend plusieurs boutons qui permettent notamment de crer une nouvelle
Formation Matlab 7
fentre ddition pour lcriture de programmes, douvrir un fichier dj existant, de couper,
copier ou coller une partie dun programme, dannuler la dernire action, etc.
Il est noter quune information bulle apparat lorsque la souris est positionne
suffisamment longtemps sur lun des boutons ; elle renseigne alors sur son rle.
On constate aussi que la fermeture et la mise en icne - de la fentre de commande peut se
faire par un simple clic sur les boutons de gestion de fentre, situs en haut droite. La
fentre peut aussi couvrir la totalit de lcran, puis reprendre sa taille initiale, laide du
dernier bouton.
Le dplacement de la fentre seffectue en maintenant le bouton daction de la souris (en
gnral celui de gauche) sur la barre descriptive de la fentre.
Enfin, la fentre dispose de barres de dfilements vertical et horizontal. Comme pour Word,
Excel, Powerpoint, etc., le dimensionnement de la fentre est possible. On se place alors
la limite de la fentre et en maintenant le bouton daction enfonc de la souris, on dfinit une
nouvelle taille de la fentre.
En outre, le prompt de Matlab est dfini par le sigle >>.
Application : On propose, en guise de prambule, de manipuler la dmonstration pour
connatre les possibilits quoffre le logiciel Matlab. Pour accder la
dmonstration, il suffit de taper demo dans la fentre de commande, ce qui
fait apparatre des fentres interactives donnant un panorama des diffrents
outils proposs par le logiciel. On peut en gnral y lire les principales
lignes de programmes.
1.2 Exploration des bibliothques
1.2.1 Matlab et ses bibliothques
Matlab est un logiciel qui dispose dune collection de fonctions/programmes, que lon
dsigne aussi par des fichiers extension .m. Ces .m sont classs par thmes et constituent
alors des botes outils (ou toolboxes en anglais). On dispose ainsi des toolboxes general,
identification, signal, etc. Matlab ayant t cr partir dune bibliothque ddie au
calcul matriciel, de nombreuses bibliothques sont relatives lalgbre linaire (elmat,
specmat, matfun).
Ces bibliothques sont mises en place au moment de linstallation de Matlab. Il est noter
quelles sont payantes. Mais elles sont trs utiles car elles regroupent des traitements de bases
(par exemple, le calcul du dterminant dune matrice, lobtention des valeurs propres ou
singulires et des vecteurs associs, etc.). En gnral, chaque programme dbute par un
commentaire de quelques lignes dcrivant lobjectif du programme, les entres, etc.
Comme les bibliothques doivent tre accessibles de nimporte quel point o lon se place
dans larborescence du disque, une variable PATH doit tre configure pour dfinir les
chemins daccs. Lensemble des liens vers des bibliothques existantes est disponible en
tapant dans la fentre de commandes : path.
Formation Matlab 8
On peut sinon crer des bibliothques personnelles contenant ses propres fonctions ou
dautres trouves sur le net. Pour cela, il faut dfinir des rpertoires o elles seront places. De
la mme manire que prcdemment, il faut configurer une variable PATH.
Pour cela, on suit la procdure suivante :
- cration dun rpertoire associ la bibliothque nom_lib ;
- cration du fichier startup.m qui va contenir la mise jour du path gnral de Matlab :
path(/home/Matlab/nom_lib,PATH);
Application : Crer un rpertoire de travail partir du poste de travail de votre
ordinateur puis votre bibliothque personnelle nomme libpers. Attention :
ne pas oublier de remplacer le chemin /home/Matlab/nom_lib par celui
adapt votre cas !
Pour explorer les bibliothques, deux commandes help et lookfor associs un mot cl
peuvent tre exploites.
1.2.2 Commande help
Un champ de description est associ chaque fonction ; grce la commande help, on obtient
lcran un texte qui permet de savoir quoi sert la fonction, mais aussi comment
lemployer. Cette commande peut sutiliser deux niveaux :
- la commande help sans argument donne le listing des bibliothques o sont regroupes les
fonctions par type ;
- la commande help "Topic" fournit les renseignements sur les bibliothques ou sur les
fonctions selon que Topic quivaut une bibliothque ou une fonction.
Exemple : si lon tape help cos, on obtient une description de la fonction cos.

Figure n2 : utilisation de la commande help
Application : lire les descriptions des fonctions cos, det, eig, butter et plot.
1.2.3 Commande lookfor
En utilisant la commande lookfor, on effectue une recherche par thme qui renvoie le nom de
chaque fonction associe ce thme et ses diffrents arguments.
Exemple : si lon tape lookfor inverse, on obtient un listing des fonctions ayant le mot
inverse dans leur texte de description (en anglais en gnral).
Application : rechercher la commande qui permet de raliser laffichage dun titre pour un
graphe.
Formation Matlab 9


Figure n3 : utilisation de la commande lookfor
1.2.4 Localisation de la fonction utilise
Aprs avoir vu les commandes permettant de connatre les fonctionnalits des outils
proposes par Matlab, il peut tre utile de localiser la fonction tudie sur le disque. Pour
cela, on utilise la commande : which nom_function
Application : quelles bibliothques appartiennent les fonctions cos, det, eig, butter?
1.2.5 Autres commandes
fonctions dfinition
pwd indique le rpertoire de travail
cd permet le dplacement dans larborescence
du disque
ls description du contenu du rpertoire
1.3 Commandes de gestion de lespace de travail
1.3.1 Introduction
Comme un calculateur, Matlab peut effectuer des oprations simples : une addition, une
multiplication, une soustraction, une division, une mise la puissance dun nombre. Lobjet
de cette partie est tout dabord deffectuer ces oprations lmentaires puis dintroduire la
notion de variables et de calculs mathmatiques.
Formation Matlab 10
1.3.2 Matlab comme simple calculateur
Prenons un exemple simple : Yannick et Eric, deux grands sportifs , dcident de jouer au
tennis pendant deux heures dans un club des Landes. Ils nont malheureusement pas de
matriel et dcident de louer les raquettes et les balles. La location dune raquette est de 15 F
pour une heure. La boite de balle est loue 10 F pour la totalit de la partie et la location du
court lheure est de 60 F.
Dans la fentre de commande, on peut immdiatement rsoudre ce problme en tapant
>>4*15+10+2*60
En tapant sur entre, le rsultat saffiche.
Il est noter que la prsence despace ou non entre les oprateurs ninflue pas sur le rsultat,
not ans par dfaut par Matlab. Lordre des oprations se fait de gauche droite et suit lordre
habituel des rgles de priorits. La multiplication (*) et la division (/ ou \ ; 100/2=2\100) sont
prioritaires devant laddition (+) et la soustraction (-). La mise la puissance (^) a lordre de
priorit le plus lev. Les parenthses semploient elles aussi de faon classique.
Le problme que lon vient de traiter peut se rsoudre dune autre manire en stockant les
donnes dans des variables. Ainsi, on peut noter raq la variable relative au prix de la location
dune raquette, nbre_raq le nombre de raquette, balle le prix de la location de la boite de
balles, court la location du court lheure et heure le nombre dheures passes sur le terrain.
On entre alors les valeurs variables une aprs lautre comme suit :
>>raq=15 puis taper entre !
Application : entrer toutes les variables et calculer le prix total que lon stocke dans la
variable prix.
Le nom des variables peut contenir jusqu 31 caractres. Ils doivent ncessairement
commencer par une lettre et peuvent tre suivis par des chiffres ou le caractre _. Les
caractres de ponctuation ne sont pas accepts. Matlab fait la diffrence entre minuscule et
majuscule.
Remarque : on peut valider les oprations en appuyant chaque fois sur entre ou les
crire sur une mme ligne mais en les sparant par une virgule.
Remarque 2 : si une commande est suivie dun point virgule, le rsultat napparat pas sur
la fentre de commande mais la commande a t effectue.
Remarque 3 : rappel des dernires commandes tapes dans la fentre de commandes : au
lieu de rcrire une commande dj effectue, on peut exploiter les touches
du clavier et pour la rappeler. Il faut cependant que le curseur soit
positionn aprs le prompt. Aprs un emploi important de la fentre de
commande, on peut acclrer la recherche de la commande, en crivant
aprs le prompt (>>), la premire lettre de la commande souhaite.
Remarque 4 : pour effectuer un commentaire, on commence par %.
Remarque 5 : on peut enfin exploiter les pour signifier Matlab que le reste de la
commande apparat la ligne suivante.
Formation Matlab 11
Remarque 6 : On peut enfin interrompre Matlab nimporte quel moment en appuyant sur
Ctrl+C.
1.3.3 Nombre complexe
Pour dfinir la partie imaginaire dun nombre complexe, on multiplie par i ou par j. Pour
extraire la partie imaginaire et la partie relle dun nombre complexe, on emploie
respectivement les fonctions imag et real. Le calcul du module se fait avec la fonction abs.
Enfin, si lon souhaite passer une reprsentation en coordonnes polaires du nombre
complexe, la dtermination de langle seffectue laide de la fonction angle.
Application : entrer la variable comp gale 1-2i. Retrouver sa partie relle, sa partie
imaginaire et sa reprsentation en coordonnes polaires.
1.3.4 Mathmatiques, gomtrie
fonctions dfinition
abs(x) valeur absolue ou module dun nombre complexe
acosh(x) fonction inverse du cosinus hyperbolique
asin(x) fonction inverse du sinus
asinh(x) fonction inverse du sinus hyperbolique
atan(x) fonction inverse de la tangente
atanh(x) fonction inverse de la tangent hyperbolique
conj(x) complexe conjugu
cos(x) cosinus
cosh(x) cosinus hyperbolique
exp(x) fonction exponentielle
floor(x) partie entire dans le cas dun rel positif
imag(x) partie imaginaire
log(x) fonction logarithme nprien
log10(x) fonction logarithme en base 10
real(x) partie relle
sign(x) fonction signe
sin(x) sinus
sinh(x) sinus hyperbolique
sqrt(x) racine carre
tan(x) tangente
tanh(x) tangente hyperbolique
Lune des bibliothques les plus employes est celle qui contient les fonctions mathmatiques
gomtriques les plus usuelles. Le tableau donn prcdemment regroupe les principales
fonctions prdfinies relatives ce thme.
1.3.5 Ecriture directe dune matrice ou dun vecteur
Pour dfinir une matrice sous Matlab, on suit les conventions suivantes :
- sparer les lments dune mme ligne par un blanc ;
- utiliser le symbole (;) pour indiquer la fin dune ligne ;
- dfinir le dbut et la fin de la matrice par des crochets [ ] ;
Application : Entrer la matrice
(

=
5 4
3 3
A et le scalaire d=3.
Formation Matlab 12
1.3.6 Gestion des variables dans lespace de travail : commandes whos, clear, format
La commande whos donne la liste des variables avec leurs caractristiques dfinies dans
lespace mmoire. Les commandes clear et format permettent respectivement de dtruire une
variable de lespace de travail et donne la possibilit de modifier le format daffichage des
variables qui sont restitues lcran.
Application : Dtruire toutes les variables sauf la matrice A et le scalaire d. Puis, dfinir
une variable scalaire complexe b en entrant >> 10 * 1 i b + = ; et taper la
commande whos. Le rsultat est le suivant :

Figure n4 : utilisation de la commande whos
Si lon souhaite utiliser la valeur , on tape pi (en minuscules).
Application 2 : modifier le format daffichage de la valeur .

Figure n5 : utilisation de la commande format
Formation Matlab 13
1.4 Oprations directes sur les matrices
1.4.1 Oprations arithmtiques :
Les oprations sur les matrices se font en criture directe laide des oprateurs *, /, \, +, etc.
Application : une fois toutes les variables dj existantes dtruites, utiliser la fentre de
commandes pour dfinir :
(

=
5 4
3 3
A x =

(
5
2
y =

(
4
1
.
Calculer:
x A w * = (vecteur)
y w sd '* = (scalaire) . permet de calculer la transpose de la matrice.
y w h = (vecteur)
y w z * . = (vecteur) . .* permet deffectuer une multiplication terme
terme.
1.4.2 Oprations relationnelles et logiques
fonctions dfinition
< > diffrent de
<= >= infrieur (suprieur) ou gal
== gal
~= diffrent
& et logique
| ou
~ complment logique (not)
xor ou exclusif
1.5 Manipulations sur les lments matriciels
1.5.1 Manipulation des indices
- Lecture dun lment :
A(i,j) permet de voir llment la i
me
ligne et la j
me
colonne de A ;
- Modification dun lment :
A(i,j)=d
- Lecture dune ligne ou dune colonne :
A(i,:) renvoie la i
me
ligne de A.
A(:,j) renvoie la j
me
colonne de A
- Suppression de la i
me
ligne :
A(i,:)=[]
Attention: aprs la suppression, les numros de lignes seront dcals.
- Concatnation de deux matrices:
B=[A,C] ou B=[A C] : concatnation horizontale: la matrice C est ajoute droite de
la matrice A
B=[A;L] : concatnation verticale, la matrice L est ajoute au bas de la matrice A
Formation Matlab 14
Si lon dsire insrer une colonne (resp. une ligne) dans une matrice, cela revient en fait
concatner deux matrices dont l'une est un vecteur colonne (resp. ligne). On ne peut pas
insrer simplement une colonne ou une ligne l'intrieur d'une matrice.
Application : ajouter la matrice A une ligne dont les lments sont [10 -2]. Puis,
modifier la valeur de llment (3,2), en lui donnant une nouvelle valeur
gale -205.
1.5.2 Valeurs particulires
Deux valeurs informatiques non dfinies sont manipules par Matlab : NaN (Not a number)
reprsente llment non dfini et Inf est associ linfini.
Application : en posant [ ] 0 0 8 = x et [ ] 5 0 4 = y calculer x y d / . =
Remarque : les fonctions isnan et isinf permettent de savoir si dans une matrice les
lments NaN et inf sont prsents.
1.6 Matrices creuses (help sparfun)
Les matrices creuses (sparse matrix) sont des matrices caractrises par un nombre trs
important dlments nuls. Dun point de vue informatique, un traitement particulier de ces
matrices permet un gain en place mmoire et en cot calculatoire.
fonctions dfinition
sparse cration dune matrice creuse
full conversion dune matrice creuse
issparse retourne 1 si la matrice est creuse
speye matrice identit creuse
Application : Crer une matrice alatoire de taille 66, note A avec la fonction rand.
Gnrer la matrice B ne contenant que les lments suprieurs 0.92 et des
zros ailleurs (A>0,92).*A. Cette matrice est alors transforme en matrice
creuse en utilisant les fonctions adaptes. Vous vrifierez le rsultat avec la
commande whos.
Remarque : on verra dans la partie 2 que la fonction rand permet la gnration de
processus alatoire
1.7 Matrice et chane de caractres
Dans Matlab, les chanes de caractres sont des matrices. Elles sont dfinies par des
guillemets simples : 'entre guillemets simples' .
Remarque: Il ne s'agit pas des guillemets inverss : `pas de guillemets inverss`, ni de
guillemets doubles : "pas de guillemets doubles".
Formation Matlab 15

Figure n6 : exemple sur les chanes de caractres
Les fonctions associes se trouvent dans la toolbox strfun . (help strfun). On y trouve les
fonctions de conversion, de comparaison, de recherche, etc.
1.8 Bilan et exercice dapplication
1.8.1 Ce quil faut (au minimum) retenir !
Matlab est un logiciel qui dispose dune collection de bibliothques contenant des
fonctions/programmes extension .m. Comme un calculateur, Matlab peut effectuer des
oprations simples et peut stocker des variables de nature diffrentes (matrice, vecteur,
scalaire, rel, complexe, etc.).
Parmi les commandes connatre : path, help, lookfor, which, pwd, cd, ls, whos, clear,
format, etc.
On peut interrompre Matlab nimporte quel moment en appuyant sur Ctrl+C.
Formation Matlab 16

1.8.2 Exercice dapplication 1
- Crer la matrice suivante
(
(
(
(


=
4 1 12 8 13
17 14 7 11 2
2 15 6 10 3
1 4 9 5 16
A
- Crez une matrice { }
ij
b B = de la mme taille que
{ }
A a
ij
= , et pour laquelle
b
ij
=1 si 6 11 a
ij
, et b
ij
=0 sinon.
- Rechercher les lments de la matrice
{ }
A a
ij
= qui obissent la relation 6 11 a
ij
.
On utilisera pour cela la fonction find, qui permettra de dterminer les lments de la
matrice B gaux 1.
- Calculer la somme de la diagonale commenant par llment a
1 2 ,
. On utilisera pour cela
les fonctions diag et sum.
- Calculer le dterminant de la matrice A A
T
* *a
1 2 ,
. On utilisera pour cela la fonction det.
- Gnrer laide de la fonction rand une matrice D dont les lments sont alatoires de
taille (44). Crer une matrice binaire laide des oprateurs relationnels correspondant
aux lments de D qui sont suprieurs 0.2 et infrieurs 0.8. Crer alors la matrice G
qui ne contient que les lments de D donns par les ingalits et des zros ailleurs.
Formation Matlab 17
PARTIE N 2 SUR CERTAINES FONCTIONS DEDIEES
AU CALCUL
2.1 Initialisation et manipulation
Deux fonctions permettent de gnrer des matrices initialises zro ou une valeur
quelconque.
fonctions dfinition
zeros remplissage de zros
ones remplissage de 1
eye matrice identit
Application : Crer un vecteur ligne contenant successivement douze 0, puis huit 1 et
enfin douze 0.
Application 2 : Crer les matrices suivantes laide des fonctions zeros, ones et eye, et en
les concatnant horizontalement ou verticalement de faon approprie.

(
(
(
(

05 . 0 2 . 0 1 . 0 2 . 0
1 0 0 0
0 1 0 0
0 0 1 0
,
(
(
(
(

0 1 0 1
1 0 1 0
1 0 1 0
0 1 0 1
.
Diffrentes fonctions permettent de modifier lorganisation des lments dune matrice
partir de rotations ou de symtries.
fonctions dfinition
flipud symtrie horizontale (up-down)
fliplr symtrie verticale (left-rigth)
triu partie triangulaire suprieure
tril partie triangulaire infrieure
sort arrangement par ordre croissant
rot90 rotation de 90
Application : A partir dune matrice de taille 4*4, oprer successivement sur cette mme
matrice une rotation de 90 puis une symtrie verticale.
Formation Matlab 18
2.2 Algbre linaire
De nombreuses fonctions relatives lalgbre existent dans Matlab. Cet outil a t dvelopp
en effet dans le contexte de lalgbre dans ses versions prliminaires. Notre objectif nest pas
de fournir un descriptif exhaustif de toutes les fonctions. On se limite certain nombre afin de
proposer un point dentre lutilisateur.
2.2.1 Fonctions lmentaires
Les fonctions lmentaires regroupent les fonctions qui restituent une grandeur relative la
matrice tudie.
fonctions dfinition
trace trace de la matrice
det dterminant
norm normes 1, 2 etc. de la matrice
cond conditionnement
rank rang
Application : Calculer le rang de la matrice
(

4 2 4 2
2 1 2 1
.
2.2.2 Fonctions de dcomposition
De nombreuses techniques de dcomposition existent dans lalgbre linaire. Ces
dcompositions se retrouvent travers les fonctions suivantes :
fonctions dfinition
eig dcomposition en lments propres
svd dcomposition en lments singuliers
Application : Calculer les valeurs singulires associe la dcomposition SVD de la
matrice A donne par la relation
T
UDV A =
(
(
(


=
8 1 2 4
5 6 1 3
2 1 0 2
A
Vrifier que lon a les valeurs propres de la matrice
T
AA qui correspondent
aux valeurs singulires leves au carr.
Formation Matlab 19
2.3 Oprations sur les donnes
2.3.1 Gnration alatoire
La gnration de processus alatoires est possible sous Matlab avec les deux fonctions qui
suivent :
fonctions dfinition
rand remplissage de valeurs alatoires :
distribution uniforme
randn remplissage de valeurs alatoires :
distribution gaussienne
2.3.2 Analyse des donnes
Certaines de ces fonctions sont relatives la caractrisation dun processus alatoire. Elles
permettent toutes de caractriser le jeu de donnes qui est en entre.
fonctions dfinition
median valeur mdiane
max maximum
min minimum
std cart type (standard deviation)
Cf. cours de probabilits, processus
alatoires
mean moyenne
corrcoef coefficient de corrlation
Cf. cours de probabilits, processus
alatoires
prod produit des lments
sum somme des lments
Application : Gnrer laide de la fonction rand 15 chantillons dun processus
alatoire de distribution uniforme. Calculer sa moyenne et sa variance. En
outre, extraire la valeur max et min du jeu de donnes en incluant
linformation relative leur position dans le vecteur.
2.4 Oprations sur les Polynmes
Les diffrentes fonctions prsentes dans ce paragraphe sont relatives aux polynmes, ces
polynmes sont grs sous Matlab en suivant un ordre dcroissant pour lexposant et donc
pour la dclaration de leurs coefficients.
Formation Matlab 20

fonctions dfinition
roots Calcul des racines connaissant les
coefficients
poly Calcul des coefficients connaissant les
racines
polyval Calcul de P(x)
polyfit Identification des coefficients dun
polynme laide des moindres carrs
conv Produit de deux polynmes
deconv Division de deux polynmes
Application : Dterminer les coefficients du polynme caractris par les racines
[ ] 3 , 4 2 5 , 0 = A . Calculer la valeur prise par ( ) x P pour 2 = x .
Application 2 Evaluer les coefficients du polynme caractristique associ la matrice
(


=
7 3
1 2
A .
Formation Matlab 21
PARTIE N 3 LEMENTS DE PROGRAMMATION
3.1 Introduction
Aprs avoir vu un certain nombre de commandes utilises directement sous le prompt de
Matlab, on sintresse maintenant la construction de programmes contenant plusieurs
commandes. La programmation sous le logiciel Matlab conserve lesprit de simplicit
savoir une programmation directe sans pointeur ou autre. Pour dvelopper une application,
deux lments sont donc considrer :
1. le programme principal appel "script".
2. les lments de type fonction ou sous-fonction.
3.2 Script
3.2.1 Dfinition dun script
Un programme Matlab est un fichier texte contenant un certain nombre de commandes
Matlab. Sur le disque, il apparat toujours de la faon suivante :
nom_script.m
Ce programme scrit laide dun diteur de texte quelconque. Par dfaut, vous avez celui
propos par Matlab mais il peut tre modifi laide du menu prfrences.
3.2.2 Construction dun script
Leur construction est trs simple. En fait, il sagit dune succession de commandes dans un
fichier texte, celles-ci mme que lon entrait prcdemment sous le prompt. Pour raliser un
bon script, les trois points suivants doivent tre respects :
1. Pour plus de scurit, toujours dbuter un script par la commande clear pour que les
donnes contenues dans lespace de travail ninterfrent pas avec les variables utilises
dans le script.
2. Crer une zone de commentaires. En effet, pour raliser une bonne gestion de ses
programmes, il est utile de leur associer un commentaire dtaillant leur fonctionnement.
Pour chaque ligne de commentaire, le sigle % doit tre tap au dbut de chaque ligne. Il
est noter que ces commentaires sont accessibles avec la commande help.
Formation Matlab 22
3. Comme Matlab est un langage pr-compil, il faut tre rigoureux dans sa programmation
en vue dune conomie de temps de traitement.
Application :
calcul des sommes des lments de chacune des diagonales dune matrice.

Figure n7 : exemple de script
Une fois le script crit et enregistr, on peut lexcuter en tapant sur la fentre de
commande le nom du programme.
3.3 Fonctions
3.3.1 Introduction
Les fonctions ont un rle trs important dans Matlab puisque ce sont elles qui constituent un
de ses principaux atouts. Ces fonctions sont utilisables partir dun script ou directement de
lespace de travail.
3.3.2 Dfinition
Une fonction est dfinie par :
- son nom ;
- ses entres ;
- ses sorties.
Formation Matlab 23
syntaxe gnrale :
function [sortie_1,sortie_2, ...]=nom_fonc(entre_1,entre_2, ...)
3.3.3 Exemple de fonction
Pour illustrer le principe de construction d'une fonction, reprenons lexemple du calcul des
diagonales, mais en crant une fonction utilisable pour une matrice A quelconque. On
exploiter cette fonction sous le prompt de Matlab.

Figure n8 : exemple de fonction
3.4 Structures de programmation usuelles
On rappelle dans ce paragraphe les principales structures de programmation que lon
rencontre en gnral. Sous Matlab, le nombre de ces structures est trs rduit puisque lon en
a deux types :
for ( k = Val_Init : Pas : Val_fin)



end
while (condition)



end

Formation Matlab 24
3.4.1 Structure de type test
if (condition)


else


end
if (condition1)


elseif (condition2)


else


end

switch
case


otherwise


end



Remarque :
Comme Matlab est un logiciel interprt, il faut utiliser avec parcimonie les boucles for et
while. Il vaut mieux ds que possible utiliser la boucle interprte " : ".
Pour remplir un vecteur A des valeurs de 11 20, au lieu de :
A=zeros(1,10);
for ii=1:10
A(ii)=ii+10;
end
il vaut mieux
A=11:20;
ou bien
A=[1:10]+10;
Formation Matlab 25
Application :
A partir dune matrice A et dun vecteur vect, on veut calculer la matrice D telle que :
colonne D colonne A vect i
i i
( ) ( ) * ( ) =

Figure n9 : exemple dutilisation des boucles et leurs inconvnients
Formation Matlab 26

3.5 Bilan et Exercices dapplication : Cration d'une fonction
1) Gnrer un vecteur complexe dfini par A=[ 0.22+0.5*i ; 0.4-0.2*i]
2) Extraire les parties relles, imaginaires, modules et phases des lments du vecteur A.
3) Crer une fonction farg_A permettant de calculer la phase des lments complexes d'une
matrice A. Deux arguments en entre pour la fonction sont imposs: le premier reprsente
la matrice A et le second est une variable texte qui permet de sortir le rsultat, soit en
radian, soit en degr. Strcmp
Formation Matlab 27
PARTIE N 4 GRAPHISME
4.1 Prambule
Une des priorits des dveloppeurs de Matlab est aujourdhui doffrir aux utilisateurs un
maximum doutils graphiques. Lapproche "oriente objet" a permis de donner une trs
grande efficacit et souplesse ces outils. Laspect des graphes que lon manipule peut ainsi
tout moment tre modifi par exemple par un changement de format du graphe, des couleurs
ou du style de la reprsentation.
4.2 Notion de figure
Avant de dtailler les diffrentes fonctions de visualisation, il faut noter que lon peut gnrer
simultanment plusieurs graphes lcran. Pour cela, on utilise la commande figure qui
permet douvrir autant de fentres graphiques que dsir. Chaque figure porte un numro qui
permet de la rfrencer et ainsi de savoir o lon envoie les sorties graphiques. Les figures
sont indexes automatiquement, la commande close permet de les fermer partir de lespace
de travail. Il est noter que toutes les fentres se ferment laide de la commande close all.
Application :
Ouvrir deux figures et les refermer.

Figure n10 : ouverture et fermeture de fentre pour figure
ouvre la figure n1
ouvre la figure n2
rend active la figure n1
fermeture de la figure n1
Formation Matlab 28
4.3 Affichage des courbes 2D
Matlab possde un grand nombre de fonctions permettant de produire des courbes 2D.
Chacune accepte en entre des formes vectorielles ou matricielles automatiquement mises
lchelle suivant les axes dfinis par ces donnes.
Fonctions lmentaires dfinition
plot Affichage linaire
loglog Echelle log-log
semilogx Echelle semilog sur x
semilogy Echelle semilog sur y
line
Dfinition dune ligne

Outils dfinition
polar Affi. en coordonnes polaires
bar Affi. en mode escalier
hist Affi. dun histogramme
fplot Affi. dune fonction donne

Outils dfinition
title Cration dun titre
xlabel Commentaire sur x
ylabel Commentaire sur y
grid Cration dune grille
text Commentaire sur graphe
axis Gestion des axes (zoom)
subplot Multi-graphe sur mme figure
hold Mode surimpression
4.3.1 Commande plot
La commande plot gnre laffichage des lments dun vecteur ou des colonnes dune
matrice. Si y est un vecteur, plot(y) produit un affichage linaire des lments de y suivant
lindex du vecteur. Si on spcifie deux vecteurs en entre plot(x,y), on obtient laffichage des
lments de y suivant ceux de x. Les couleurs et les symboles associs aux donnes sont
paramtrables (voir help plot).
Application :
1. Raliser laffichage de la fonction Chirp dfinie par sin( ) t
2
sur lintervalle:0 < t < 5 avec
un pas de 0.1 en utilisant la commande plot. Ajoutez une lgende l'aide de title, xlabel et
ylabel.
2. Modifier le style de la courbe pour ne reprsenter que les points calculs, sans les lignes
entre points conscutifs. Choisir ensuite votre propre mode de reprsentation.
Formation Matlab 29
4.3.2 Commande fplot
Cette commande permet d'afficher une fonction sans l'effet de l'chantillonnage. Pour cela, on
doit en premier lieu crer une fonction Matlab reprsentant la fonction mathmatique
tudier.
function x=chirp(t);
% Cette fonction cre un signal chirp
x=sin(t.^2);
Puis, sous le prompt Matlab, on entre:
fplot('chirp',[0 5])
Cette fonction calcule plus finement la fonction sur les portions o la fonction prsente des
discontinuits graphiques.
4.3.3 Commande subplot
Cette commande est un outil qui permet de grer le nombre de graphes que lon cre sur une
mme figure. Elle partitionne la figure comme une matrice (n,p) dont les lments sont des
graphes.
subplot(n,p,r)
o: n est le nombre de lignes, p est le nombre de colonnes,
r est le numro de placement dans la matrice (colonne par colonne).

Figure n11 : utilisation du subplot
r=1
r=3
r=2
r=4
Formation Matlab 30
4.3.4 Commande axis
Lorsque lon veut ne visualiser qu'une portion d'un vecteur de donnes, on utilise la
commande axis. Elle peut tre utilise de la faon suivante :
2D axis([ xmin xmax ymin ymax])
3D axis([ xmin xmax ymin ymax zmin zmax])
Elle permet de grer les chelles sur les diffrents axes. Elle peut en outre tre utilise comme
un zoom statique. Il est noter que cette commande permet aussi de grer l'aspect gnral des
axes. En effet, on peut l'utiliser avec du texte comme entre, ainsi:
axis('square') l'espace graphique prend une forme carr.
axis('equal') indique que les marqueurs sur les axes seront les mmes.
axis('off') supprime les axes l'cran.
axis('on') restaure les axes l'cran.
4.4 Affichage des courbes 3D
Comme pour le cas 2D, on dispose d'un certain nombre de fonctions de visualisation des
donnes dfinies dans un domaine tridimensionnel.
Visualisation 2D des donnes 3D dfinition
contour Courbes de niveaux
image Visualisation par niveau de gris
imagesc Idem mais non normalis
mesh Dformation d'une grille 3D.
meshc Combinaison de mesh et de contour.
meshz Combinaison de mesh plus projection sur le
plan z=0.
surf Idem que mesh, mais avec surface colore.
plot3 Visualisation de type plot, mais avec 3
vecteurs

Outils dfinition
colormap Changement de palette de couleurs
view Orientation de la vue 3D
meshgrid Dfinition des matrices reprsentant la
grille
Certaines de ces fonctions attendent des arguments de type vectoriel ou matriciel.
4.4.1 plot3 : arguments vectoriels
Cette fonction est identique la commande plot, mais avec x, y et z comme arguments.
Application : Dfinir une variable dfinissant le segment [0,10] par pas de /50. Entrer
la commande plot3(sin(t),cos(t),t)

Formation Matlab 31
4.4.2 Fonctions arguments matriciels
Ces fonctions permettent de visualiser des donnes dfinies sur une grille reprsente par une
matrice. Diffrentes possibilits de visualisation existent :
- soit par niveau de gris (0-256) -->> image
- soit par niveau d'amplitude -->> contour
- soit par reprsentation de la grille -->> mesh,surf













Figure n12 : fonctions argument matriciel
4.4.3 meshgrid
Toutes ces fonctions ncessitent des matrices comme entres. Dans certains cas, on est oblig
de gnrer soi-mme la matrice visualiser. Pour cela, Matlab possde une fonction qui
permet d'obtenir les points de la grille reprsentant les x et y.
Application :
z x y x e
x
x y e e
x y x y x y
( , ) ( ) ( )
( ) ( )
=
+ +
3 1 10
5
1
3
2 1 3 3 1
2 2 2 2 2 2

On choisit pour cela la rgion:

3 3
3 3
x
y

Pour dfinir la grille de visualisation partir des vecteurs dfinis plus haut, on utilise la
commande meshgrid :
[X,Y]=meshgrid(-3:1/8:3);

La matrice Z contient tous les points calculs partir de la grille gnre par les matrices X et
Y.
Grille de la
matrice
Amplitude des
lments de la
matrice
Formation Matlab 32
X
x x x x x x
x x x x x x
x x x x x x
x x x x x x
x x x x x x
=

(
(
(
(
(
(
(
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5


Y
y y y y y y
y y y y y y
y y y y y y
y y y y y y
y y y y y y
=

(
(
(
(
(
(
(
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6

















Il suffit alors d'utiliser l'oprateur "lment par lment" pour les oprations sur les matrices
ainsi dfinies. Le dbut du programme s'crit donc :
% Visualisation 3D
[x,y]=meshgrid(-3:1/8:3);
z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ...
- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ...
- 1/3*exp(-(x+1).^2 - y.^2);
On tudie maintenant les diffrents outils pour visualiser la matrice Z.
4.4.4 plot
Cette fonction, la plus simple, permet de tracer une ligne pour chaque colonne de la matrice Z.

y(3) x(4)
y(1) y(2) y(3) y(4) y(5) y(6) y(7)
x(1)
x(2)
x(4)
x(3)
x(6)
x(5)
Formation Matlab 33
4.4.5 contour et contour3
Avec la fonction contour, on visualise les donnes contenues dans la matrice Z par courbes de
niveau. Matlab trace les courbes joignant les mmes niveaux d'amplitude de la matrice Z sur
un plan 2D. Contour3 ralise la mme fonction, mais dans un plan 3D, le nombre de niveaux
tant paramtrable.
contour(x,y,z,M)
o x, y sont les matrices ou vecteurs des axes, z la matrice des amplitudes et M le nombre de
niveaux.
Exemple :
figure(1); contour(Z,20)
figure(2); contour3(Z,20)
4.4.6 mesh et surf
Les commandes mesh et surf affichent une surface en 3 dimensions en perspective. La
commande mesh associe les couleurs aux lments de la grille tandis que surf colore les
facettes de la grille. (idem pour surfc, meshc, meshz)
mesh(x,y,z,C) ; surf(x,y,z,C)
o x, y sont les matrices ou vecteurs des axes, z la matrice des amplitudes et C reprsente le
mode dvolution de la couleur.

Figure n13 : fonctions argument matriciel
Formation Matlab 34
4.4.7 image
fonctions dfinition
image Affichage dune image
imagesc Affichage dune image avec son intensit
imread Lecture dun fichier image un format
donn
imwrite Ecriture dun fichier image un format
donn
iminfo lecture des informations dun fichier image
La commande image restitue la matrice d'entre sous forme d'une carte 2D avec des niveaux
de gris correspondants. La matrice d'entre doit donc tre normalise par rapport aux m
niveaux de couleurs de la carte slectionne. En ralit, cette fonction est un cas particulier de
la commande pcolor qui peut tre totalement paramtrable dans la dfinition de ces axes, la
gestion des couleurs, etc.
Si on dsire utiliser une matrice non normalise par rapport la palette de couleurs, il faut
travailler avec la commande imagesc.
4.4.8 colormap et colorbar
La fonction colormap permet de slectionner une palette de couleurs prdfinie. Une palette
de couleurs est un tableau de taille (m,3) dont les lignes spcifient l'intensit en code RGB
(Red, Green, Blue) de la faon suivante:
[ ] map k r k g k b k ( ,:) ( ) ( ) ( ) =
avec 0 1 r k g k b k ( ), ( ), ( )
Exemple de codes :
[0 0 0] noir
[1 1 1] blanc
[1 0 0] rouge
[.5 1 .83] bleu marine
Par dfaut, m vaut 64. Il peut aller jusqu' la valeur 256. Matlab propose plusieurs palettes de
couleurs: hsv, hot, cool, jt, pink, copper, gray.
Pour associer les couleurs aux donnes, Matlab segmente l'axe des z, en utilisant
[zmin,zmax], en un nombre d'intervalles correspondant aux nombres de lignes de la palette de
couleurs. Pour visualiser la palette avec les segments, on peut utiliser la commande colorbar.
Formation Matlab 35
4.4.9 view
Lorsque l'on utilise une commande de visualisation 3D, la courbe apparat sous un angle de
vue donn. Grce la commande view, on peut faire varier les angles de point de vue. Le
repre utilis est le suivant:













view(az,ae)
view([xe ye ze])
Par dfaut, les arguments ont comme valeurs (0,90) pour des graphiques 2D et (-37.5,30) pour
des graphiques 3D.
Matlab permet aussi de gnrer des graphiques de trs haute qualit avec des effets
d'clairage, de texture etc. La commande shading offre la possibilit de faire disparatre la
grille et interp permet de raliser une interpolation afin de crer un effet de texture. La
commande light permet de grer la position dclairage de la figure. La commande material
offre la possibilit de modifier le type de reflet de la courbe.
Exemple : un effet d'clairage

az
ez
x
z
y
Formation Matlab 36
4.5 Graphes spcialiss
4.5.1 Barres et surfaces
fonctions dfinition
bar Barres verticales
barh Barres horizontales
bar3 Barres verticales 3d
bar3h Barres horizontales 3d
area Surfaces
Exemple :

Figure n14 : exemple dutilisation de graphes spcialiss
4.5.2 Camemberts
fonctions dfinition
pie Camembert
pie3 Camembert 3d

Formation Matlab 37
Exemple :

Figure n15 : autre exemple dutilisation de graphes spcialiss
4.6 Exercice : graphisme et fonctions
On propose de raliser l'tude du polynme suivant :
p x x x ( ) = +
3
30 30
1) Evaluer le polynme sur le segment [-8,8] pour un pas de calcul de 0.1.
polyval
2) Visualiser la courbe ainsi dfinie (Utiliser la notion de boucle interprte).
plot,grid
3) Calculer les racines et les afficher sur le mme graphique que prcdemment.
roots, hold, zeros, length
4) Crer une fonction mypoly.m reprsentant le calcul du polynme pour un x donn.
Formation Matlab 38
5) Evaluer l'aire forme par la courbe entre les deux premires racines.
quad
6) Visualiser graphiquement l'aire calcule
fill
4.7 Autre exercice
On se propose didentifier le polynme dordre n qui va modliser la courbe suivante :
) 2 . 3 sin( ) sin( ) ( x x x y + = pour [ ] x 0,
Gnrer un jeu de donnes avec un pas=pi/256.
A laide de commande polyfit, calculer les coefficients du polynme qui modlise la fonction
y(x) au sens des moindres carrs. Calculer laide de polyval la courbe obtenue et visualiser la
ainsi que y(x).
Calculer la norme de lerreur de modlisation pour toutes les valeurs de lordre comprises
entre 1 et 10. Visualiser la courbe obtenue.
) ( ) ( ) ( x p x y x E = avec p x a x a x a x a
n n
n n
( ) = + + + +

+ 1 2
1 1
1

4.8 Exercice images
La manipulation et l'affichage des images est pris en charge par l'Image Processing Toolbox
sous Matlab. Une description assez complte peut tre visualise en tapant "doc images".
Le but de cet exercice est d'afficher une image charge depuis un fichier, et de lui superposer
un graphique vectoriel dpendant du clic de l'utilisateur.

1) Chargez l'image 'peppers.png' en mmoire (imread), et affichez la (imshow).
Testez les outils de visualisation d'une image (zoom, curseur).

2) Dfinissez une courbe paramtrise par t qui chantillonne un cercle de rayon r=20 centr
en (x0,y0) arbitraire, selon les quations suivantes:
x = x0 + cos(t) * r
y = y0 + sin(t) * r
Evaluez cette courbe pour t allant de 0 2*pi par pas de pi/10, et affichez la (plot).

3) Rcuprez la position [x0,y0] d'un clic de souris sur l'image (ginput), afin de dfinir un
cercle centr sur cette position.
A l'aide de hold on, affichez l'image, puis superposez le cercle l'image.

Formation Matlab 39
PARTIE N 5 FICHIERS DE DONNEES
Matlab possde deux types de fichiers. Le premier type est constitu par les fichiers crs
un format propritaire Matlab. Ces fichiers sont reconnaissables par leur extension en .mat.
Ce format spcifique permet de sauvegarder des variables au format numrique ou texte, des
variables relles ou complexes trs simplement. Le second type regroupe les fichiers binaires
et ASCII communs tous les langages de programmation. Ces derniers permettent donc de
communiquer avec l'extrieur et en particulier de rapatrier des donnes collectes par d'autres
logiciels.
5.1 Fichiers Matlab
Les fichiers nom_fic.mat constituent donc le systme de fichiers propres Matlab. Leur
manipulation est trs facile, quel que soit le type ou la taille des matrices que l'on dsire
sauvegarder.
5.1.1 Commande save
Cette commande permet de crer ce premier type de fichier. La syntaxe est la suivante :
save nom_fich var1 var2 ...
Les variables sont sauvegardes comme des matrices et donc se retrouvent au mme format
lorsquon les recharge afin de rutiliser.
Remarque: on peut sauvegarder une matrice var au format ASCII (8 ou 16 bits)
save PATH/nom_fich var ...-ascii
5.1.2 Commande load
Cette commande permet la relecture des variables sauvegardes avec la commande save.
load PATH/nom_fich
Remarque: La commande load offre aussi la lecture de fichier ASCII sous forme d'une
matrice var
var = load PATH/nom_fich.txt

Formation Matlab 40
5.2 Fichiers binaires et ASCII: le format standard
Ce type de fichier permet d'importer et d'exporter des donnes vers l'extrieur dans le format
de son choix. Les commandes ncessaires leur manipulation sont les suivantes :
fopen fseek sprintf
fread ferror fscanf
fwrite ftell sscanf
fclose fprintf
5.2.1 Commande fopen
Cette commande ouvre et donne des informations sur le fichier que l'on dsire manipuler. Il y
a deux types de syntaxes :
fid = fopen('filename')
fid = fopen('filename','permission')
[fid,message] = fopen('filename','permission','architecture')
[filename,permission,architecture] = fopen(fid)
Ces trois premires commandes correspondent toutes l'ouverture d'un fichier dans le mode
spcifi par l'argument permission.
r : Ouverture en lecture.
r+: Ouverture en lecture et en criture.
w: Efface le contenu ou cre un nouveau fichier et le place en mode criture.
w+: Efface le contenu ou cre un nouveau fichier et le place en mode criture/lecture.
a: Cre un nouveau fichier ou ouvre un fichier existant pour l'criture la suite des
donnes dj prsentes.
a+: idem mais en lecture/criture.
Si la commande a russi, la variable fid devient un entier > 2 et la variable message est vide.
Si la commande n'a pas russi, la variable fid prend la valeur -1. Dans ce cas, un texte a t
associ la variable message qui peut vous aider dfinir l'erreur de manipulation.
Formation Matlab 41
5.2.2 Commande fread
Elle permet la lecture d'un fichier de donnes binaires. Sa syntaxe est la suivante:
[A,count] = fread (fid,size,'precision')
La commande fread permet donc la lecture d'un fichier binaire spcifi par fid et crit les
donnes dans une matrice A. fread ralise la lecture d'un nombre d'lments spcifi par size
suivant une prcision donne.
Si l'argument size est donn, les entres possibles sont:
n : lit n lments vers un vecteur colonne.
inf : lit toutes les donnes et cre un vecteur de mme taille (par dfaut).
[m,n] lit (m*n) lments et cre une matrice de taille [m,n] suivant l'ordre des colonnes.
Si la taille du fichier est infrieure, le reste se trouve combler par des zros.
L'argument prcision correspond la prcision numrique utilise pour sauvegarder les
donnes. Il correspond au nombre d'octets allou la variable pour coder sa valeur. Un
standard de prcision indpendant de la machine source est le float32 et float64. Ce format
permet une bonne portabilit.
Matlab Langage C et Fortran
'schar' 'signed char' Signed character; 8 bits
'uchar' 'unsigned char' Unsigned character; 8 bits
'int8' 'integer*1' Integer; 8 bits
'int16' 'integer*2' Integer; 16 bits
'int32' 'integer*4' Integer; 32 bits
'int64' 'integer*8' Integer; 64 bits
'uint8' 'integer*1' Unsigned integer; 8 bits
'uint16' 'integer*2' Unsigned integer; 16 bits
'uint32' 'integer*4' Unsigned integer; 32 bits
'uint64' 'integer*8 Unsigned integer; 64 bits
'float32' 'real*4' Floating-point; 32 bits
'float64' 'real*8' Floating-point; 64 bits
'double' 'real*8' Floating-point; 64 bits

formats portables
'char' 'char*1' Character; 8 bits
'short' 'short' Integer; 16 bits
'int' 'int' Integer; 32 bits
'long' 'long' Integer; 32 or 64 bits
'ushort' 'unsigned short' Unsigned integer; 16 bits
'uint' 'unsigned int' Unsigned integer; 32 bits
'ulong' 'unsigned long' Unsigned integer; 32 or 64 bits
'float' 'float' Floating-point; 32 bits

Formation Matlab 42
5.2.3 Commande fwrite
fwrite permet l'criture de donnes contenues dans une matrice. Sa syntaxe est la suivante:
count = fwrite(fid,A,'precision')
Elle permet donc de passer des donnes contenues dans la matrice A (sauvegarde dans le sens
des colonnes) vers un fichier dfini par fid suivant une prcision donne. Count correspond au
nombre de donnes effectivement translates.
5.2.4 Commande fclose
Cette commande correspond la fermeture d'un ou de plusieurs fichiers. Sa syntaxe est:
status = fclose(fid)
status = fclose('all')
5.2.5 Commande fprintf
Cette commande est l'analogue de la commande fprintf en C: elle permet d'crire une chane
de caractre ASCII dans le fichier. Cette chane de caractres peut contenir des caractres de
formatage, qui seront alors remplacs par les donnes numriques passes en argument.
Par exemple, la commande suivante crira "x=2" dans le fichier associ fid:
x=2;
fprintf(fid, 'x=%d', x);
5.3 Exercice
1) Dfinissez une matrice A:
1.1 1.2 1.3
2.1 2.2 2.3
3.1 3.2 3.3
4.1 4.2 4.3
Enregistrez cette matrice A dans un fichier 'test.mat' au format Matlab (save)
Effacez l'ensemble des variables (clear all)
Chargez le fichier (load)
Vrifiez que la matrice A a bien t lue partir du fichier.

2) Mme question en enregistrant la matrice dans un fichier 'test.txt' au format ASCII l'aide
de save et load.
Vrifiez l'aide du bloc note que le fichier contient bien les valeurs de la matrice A de faon
lisible.

3) Mme question en enregistrant la matrice dans un fichier 'test.raw' au format binaire, en
utilisant fopen, fwrite, fread et fclose. On utilisera par exemple une prcision 'double'.
La fonction fread ne renvoie pas une matrice, mais un vecteur; pourquoi ?
Quelle fonction matlab utiliser pour redonner sa "forme" 4x3 la matrice ?
Formation Matlab 43
PARTIE N 6 APPLICATIONS
6.1 Rappels sur le dveloppement en srie de Fourier et Transforme de
Fourier
Tout signal ) (t v priodique et de priode T peut se dcomposer en srie de Fourier. Ainsi, en
prenant
( ) dt t
T
k
t v
T
a
T
T
s k
|

\
|
=

2
cos
2
2 /
2 /

( ) dt t
T
k
t v
T
b
T
T
s k
|

\
|
=

2
sin
2
2 /
2 /

la dcomposition en sries de Fourier de ) (t v est alors
( )
|

\
|
+ |

\
|
+ =

=
t
T
k
b t
T
k
a
a
t v
k
k
k
2
sin
2
cos
2 1
0
.
Une autre criture est souvent utilise, surtout en traitement du signal : il sagit du
dveloppement en srie de Fourier en termes complexes.
( )

=
|

\
|
=
k
k
t
T
jk c t v
2
exp
avec ( ) dt t
T
jk t v
T
c
T
T
s k
|

\
|
=

2
exp
1
2 /
2 /
.
Les coefficients
k
c et
k
c

sont complexes conjugus et sont lis aux quantits


k
a et
k
b
comme suit :
( )
k k k
jb a c =
2
1
et ( )
k k k
jb a c + =

2
1

Il est noter que
k k
c c

= et que ( )
k k k
j c c exp = avec
|
|

\
|
=
k
k
k
a
b
Arc tan .
Formation Matlab 44
On peut aussi exprimer le signal ) (t v partir de
k
. On a
( )

=
|

\
|
+ + =
1
0
2
cos 2
k
k k
t
T
k
c c t v

.
Remarque : Le signal priodique nest pas nergie finie sur lintervalle ] [ + ; .
Cela revient dire que la quantit
( )dt t v

+

2

na pas une valeur finie. ) (t v nest donc pas de carr intgrable.
Remarque 2 : On constate en outre que daprs lgalit de Parseval,
( )

=
=
1
2 2 1
k
T
k
dt t v
T
c
Si ) (t v est rel, ( )

=
=
1
2
2 1
k
T
k
dt t v
T
c . La puissance moyenne totale du
signal est donc gale la somme des puissances moyennes des diffrents
harmoniques et de la composante continue.
Remarque 3 : On rappelle que la valeur moyenne dun signal priodique est donne par
( )

=
T
dt t v
T
0
1
.











Figure n16 : spectre damplitude du signal priodique
Le spectre du signal priodique ) (t v a une reprsentation spectrale discrte.
t (s)
|V(f)|
f 2f 3f
-3f -2f -f
|c
1
|
|c
2
|
|c
3
|
|c-
1
|
|c-
2
|
|c
3-
|
Formation Matlab 45
6.2 Exercice
6.2.1 Dcomposition en srie de Fourier, reprsentation spectrale et somme de srie
Soit ( ) t y la fonction de priode 2 dfinie sur [ ] ; par :
( )
( )

t t
t
t y
0 si sin
0 si 0

Dvelopper cette fonction en srie de Fourier partir des fonctions sinus et cosinus ;
Reprsenter la somme du fondamental avec les 5, puis 10 puis 30 premiers harmoniques.
On crera pour cela une fonction.
Vrifier la formule

+
=
=
1
2
2
1
1 4
1
p p
. On utilisera Matlab pour visualiser lvolution de la
fonction ( )

=
=
x
p p
x g
1
2
1 4
1
.

Vous aimerez peut-être aussi