Exemple simple d'utilisation de matlab

On lance matlab ; dans la fenêtre qui apparait on voit >> qui indique que matlab
... d'opération courante est la répétition d'une séquence d'instructions (boucle).

Part of the document


Exemples Simples pour Commencer
à Utiliser MATLAB en Traitement du Signal



[pic]



Joël Le Roux et Jean-Paul Stromboni
Département Sciences Informatiques
Polytech' Nice


Ce document ne cherche pas à être complet, mais seulement à permettre de
commencer à écrire des programmes simples en matlab ; on trouvera sur le
web de nombreux cours de matlab et l'aide de matlab contient toutes les
informations utiles pour améliorer son savoir-faire et approfondir ses
connaissances.

Pour commencer (On suppose que Matlab est installé ...)
On lance matlab ; dans la fenêtre qui apparait on voit >> qui indique que
matlab attend une commande.

Remarque : On peut bien sûr commencer par les exemples de l'aide de matlab


1. Premières opérations : Les commande au clavier

2. Création de programme dans un fichier
1. Retrouver et exécuter des programmes matlab écrits dans des fichiers
« .m » et rangés dans un dossier


3. Réalisation et modification d'un programme


4. Opérations en matlab

5. Gestion des graphiques

6. Conception de programmes un peu complexes

7. Les tests logiques de base

8. Utilisation d'un résultat de test pour modifier l'exécution d'un
programme

9. Un autre type d'opération courante est la répétition d'une séquence
d'instructions (boucle)

10. Gestion des séquences (vecteurs, matrices)

11. Les fonctions
1. Quelques fonctions utiles
2. Appel de fonctions et gestion des fichiers dans les dossiers


12. Entrées Sorties de sons et d'images :

1 Premières opérations : Les commande au clavier (pour faire des calculs
simples, des affichages de graphes, ...) dans la fenêtre de commande
(« command window »)

>> Indique que Matlab attend une commande

[pic]e

Dans cet exemple « a » est un vecteur ligne ; en frappant « b=a+2 » on crée
un second vecteur ligne « b » en ajoutant 2 à chacun des éléments de « a »

On demande un tracé en frappant la commande » plot » ; le résultat
s'affiche dans une nouvelle fenêtre : en abscisse on obtient le numéro
d'indice et en ordonnée la valeur de la composante correspondante de « b ».

[pic]

Si on frappe un point-virgule à la fin de la ligne de commande




et non



Alors la commande est exécutée mais le résultat n'est pas affiché

Si on veut entrer une séquence longue d'intervalles réguliers sans entrer
toutes les valeurs on utilise les deux points « : »

[pic]

Il est possible d'appliquer des fonctions sur la séquence « a » :
[pic]

affiche le sinus de la séquence :

[pic]

En abscisse il y a un simple numéro : la position de l'élément a dans le
calcul (on notera que matlab commence les numéros d'indice à 1 et non à
zéro)

Pour se déplacer dans la liste des instructions, on peut utiliser es
flèches du clavier



Si on frappe « Entrée », c'est la ligne sélectionnée qui est exécutée.

2 Création de programme dans un fichier

On se rend compte que la frappe directe d'instructions permet difficilement
de générer sans erreur des séquences d'opérations très complexes ; pour y
arriver il faut enregistrer les programmes dans un fichier dont on lancera
l'exécution quand il sera prêt

[pic]

On clicke sur « File » et (en gardant l'index appuyé, click gauche) dans le
menu déroulant «New » « M-File» . Ceci fait apparaître une nouvelle fenêtre
('Editor') dans laquelle on éditera le texte du programme

[pic]


Attention : Il est important de s'habituer à la gestion des fichiers : il
faut savoir dans quel dossier on range les fichiers pour pouvoir les
retrouver, les modifier éventuellement et les exécuter par la suite . Une
fois qu'on a écrit un programme il faut le sauvegarder : on choisit par
exemple « save as » et le nom du fichier qui doit nécessairement avoir
l'extension « .m » : matlab reconnaitra par la suite cette extension
lorsqu'on lui demandera l'exécution dans la fenêtre de commande ; par
exemple pour exécuté le programme enregistré dans le fichier
« premierpas.m » il faudra frapper dans la fenêtre « Command Window »

>> premierpas

Ici le fichier « premiersepas.m » est rangé dans le dossier « work » de
matlab
[pic]

Voici le contenu du fichier « premierspas.m »

[pic]

En frappant la commande « premierspas » on exécute le programme contenu
dans le fichier « premierpas.m »
La deuxième commande « plot(t,x) » trace la séquence x en fonction de la
séquence t : les instructions données dans la fenêtre des commandes
(command window) reconnaissent les noms des variables donnés dans le
fichier du programme : tout se passe comme si la séquence d'instructions du
programme était entrée dans la fenêtre de commandes

[pic]

[pic]


2.1 Retrouver et exécuter des programmes matlab écrits dans des fichiers
« .m » et rangés dans un dossier

Lorsqu'on range les fichiers où sont écrits les programmes matlab dans un
dossier créé dans ce but, par exemple « C:\programmatlab », il faut donner
à matlab les informations pour qu'il puisse trouver le dossier en question
; ceci se fait en définissant le chemin d'accès (commande File/Set Path)

[pic]


[pic]

[pic]

Une fois qu'on a clické « save » matlab ira chercher si nécessaire les
fichiers contenus dans le dossier programmatlab

3 Réalisation et modification d'un programme



Pour modifier le programme On lance l'éditeur de matlab

>> edit

une nouvelle fenêtre s'ouvre on y écrit le texte du programme (voir par
exemple 'exemplematlab.m)

( Dans un programme enregistré dans un fichier, on terminera une
instruction par un point-virgule afin d'éviter d'afficher le résultat de
l'instruction dans la fenêtre de commande.)

et on l'enregistre (save) sous la forme d'un fichier 'fichier.m' ;
l'extension '.m' indique que c'est un programme exécutable par matlab (ne
pas oublier de l'enregistrer à nouveau
lorsqu'on modifie le fichier)
dans la ligne de commande de matlab, on choisit le 'current directory' où
on enregistre le fichier (on peut choisir un autre dossier que le 'current
directory')

pour l'exécuter dans la fenêtre matlab

>> exemplematlab

à la fin de l'exécution de matlab on retrouve dans cette fenêtre le '>>'
Un commentaire commence par un sign e % (en début de ligne où après une
instruction)
Voici un programme essai1.m

Qui en engendre (fonction rand) une séquence pseudo aléatoire « a » dont la
longueur est celle de la séquence « t » (soit ici 1024) et qui la trace

[pic]

Son exécution dans la fenêtre de commande

[pic]

produit l'affichage

[pic]

Il est utile de bien jongler avec les fenêtres d'affichage des graphiques ;
voici quelques opérations courantes (des possibilités supplémentaires
seront décrites dans un paragraphe ultérieur ; une fois les bases acquises,
il faudra se référer à la documentation matlab pour utiliser les nombreuses
possibilités offertes) ;

Si on veut superposer un deuxième graphique à un graphique qu'on vient de
tracer, on utilise la commande 'hold on'

Voici deux programmes traçant un sinus et un cosinus

[pic] [pic]

Si on exécute le premier programme, puis la commande « hold » et le
deuxième programme

[pic]

On superpose ainsi les deux tracés

[pic]

(exercez vous en appliquant les commandes du type hold, hold on et hold
off)

Conseil : Si vous envisagez d'écrire des programmes compliqués, commencez
par un cas simple que vous enrichirez petit à petit en prenant soin de
vérifier avant une nouvelle modification que votre programme fonctionne
correctement.

4 Opérations en matlab

Il arrive souvent qu'on applique la même opération à tous les éléments d'un
tableau. On peut le faire en effectuant une boucle « for » ... «end » sur
l'opération

[pic] [pic]

(On voit ici un exemple de boucle et de manipulation d'indice) ;

On peut aussi écrire de manière non seulement condensée (et parfois plus
difficile à lire) mais aussi optimisée pour accélérer les calculs le code
« point » avant le code du produit
(.* à la place de *)
et ainsi on effectuera le même produit sur tous les couples d'éléments
ayant la même position (le même indice) dans les deux séquences

[pic] qui donnera le même résultat


5 Gestion des graphiques

Nous avons vu un exemple de tracé simple ; en voici un autre où on donne
l'abscisse et l'ordonnée pour deux graphes





[pic]





[pic]


Pour rajouter un titre et une légende


[pic]

Il est courant de vouloir afficher plusieurs figures sur le même écran ce
qui se fait avec la fonction subplot

[pic]

[pic]

Exemples de commandes expliquées dans le manuel matlab

stem grid
xlabel ylabel
title bar
figure step
disp input
6 Conception de programmes un peu complexes

Un programme est une séquence d'instruction qui modifie des données, il est
la plupart du temps nécessaire de modifier la séquence à effectuer en
fonction d'un résultat de calcul ; on effectue alors un test sur le
résultat

7 Les tests logiques de base


Opérateur Description
Inversion (NOT a) : ~a retourne 1 si a est égal 0, 0 si a est
égal à 1
Identité (double =) : a = = b retourne 1 si a égale b, 0
autrement
a < b retourne 1 si a est plus petit que b, 0
autrement
a > b retourne 1 si a est plus grand que b, 0
autrement
a = b retourne 1 si a est plus grand ou égal à
b, 0 autrement
a ~=b retourne 1 si a est différent de b, 0
autrement




8 Utilisation d'un résultat de test pour modifier l'exécution d'un
programme

On utilise couramment les tests logiques ci-dessus pour modifier la
séquence d'instructions à exécuter : après le if on a la séquence
d'instructions à exécuter si le résultat du test est « vrai » ; et après le
else la séquence d'instructions à