Académique Documents
Professionnel Documents
Culture Documents
I. Introduction – Présentation
MatLab est un logiciel qui permet de faire des calculs mathématiques et numérique, et non un
logiciel de calcul formel et symbolique comme Maple.. Matlab connaît un grand nombre
d'opérations ou de fonctions mathématiques : fonctions usuelles, calcul matriciel, fonctions plus
spécifiques du signal (FFT, etc).
Exemple : Si a est un vecteur qui contient les échantillons d'un signal, A = fft(a,128) est le
vecteur qui contient la transformée de Fourier rapide des 128 premiers échantillons du signal.
Remarque : dans toute la suite, on utilisera la notation suivante : italique (nom à donner par
l’utilisateur à une variable, etc), gras (noms généraux), rouge (nom de fonction ou d’instruction
MatLab).
MatLab est disponible sur différentes plateformes (unix, pc, mac, etc). On accède au logiciel en
lançant l'exécutable matlab suivant la procédure habituelle de l'environnement concerné.
On se retrouve alors dans la fenêtre de commande où on peut écrire des commandes ou exécuter
des fonctions. On sort du logiciel en tapant quit ou exit.
La suite a pour but de vous familiariser avec MatLab. On peut se rendre compte de la puissance
du logiciel en lançant la commande demo.
Les compléments d'information peuvent être facilement obtenus grâce à l'aide en ligne incluse
dont l'accès s'obtient en tapant au clavier :
Les fonctions usuelles sont séparées en deux : les fonctions élémentaires (elfun) et les fonctions
spéciales (specfun). Vous pouvez aussi créer vos propres fonctions (voir plus bas). Pour obtenir
de l’aide, tapez : help elfun, help specfun
Commentaires
?? une ligne de commentaires commence avec le symbole %
Taper le nom d’un fichier sans son extension sur la ligne de commande MatLab résulte en
l'éxécution des instructions contenues dans le fichier.
Un M-file peut en appeler un autre ou s'appeler récursivement. Il est cependant plus courant
d'utiliser des fichiers fonctions.
Attention : il est impératif que les fichiers soient dans le répertoire de travail de MatLab.
Pour recharger un tel fichier on utilisera load fname. Chaque variable ayant été sauvegardée par
son nom, les variables rechargées auront mêmes noms, dimensions et valeurs qu’au moment de la
sauvegarde.
Une matrice peut être définie sous forme d'une liste explicite, où les éléments d'une même ligne
sont séparés par un espace ou une virgule, les lignes sont elles-mêmes séparées par un point
virgule ou un retour chariot.:
1 2 3
A = [ 1 2 3; 4 5 6; 7 8 9] est la matrice A= 4 5 6
7 8 9
Une matrice à éléments complexes sera définie par A = [ 1 2; 3 4] +i*[5 6; 7 8], ou par A = [ 1+5i
2+6i; 3+7i 4+8i]. Les imaginaires purs i ou j peuvent être utilisés indifféremment. Attention : ne
pas insérer d'espace dans la définition d'un nombre complexe.
Chaque élément d'une matrice est accessible par ses indices strictement positifs entre parenthèses.
L'indexation des éléments d'un tableau commence toujours à 1 : ainsi, l'élément de la 3ème ligne et
4ème colonne d’une matrice A est A( 3,4) ; pour un vecteur X la 2ème composante est X( 2).
MatLab utilise un langage interprété et non un langage compilé : chaque expression écrite est
interprétée et évaluée avant de passer à la suivante.
Des lignes trop longues peuvent être continuées sur plusieurs lignes en utilisant comme indicateur
des points de suspension (…). Ainsi: x = [ 1 2 3 4] est équivalent à : x = [1 2 ... puis 3 4] sur la
ligne suivante
Pour visualiser l'état d'une session, la commande who ou whos renvoie la liste des variables
existantes ainsi que leur type (réel ou complexe) et leur taille.
Pour libérer de l'espace mémoire on peut éliminer une variable par clear nom_de_la_variable.
II.4.3. Remarques :
1. lorsqu'on additionne deux vecteurs, il faut faire attention qu'ils aient la même dimension, et en
particulier qu'ils soient tous les deux lignes, ou tous les deux colonnes.
2. n'oubliez pas le point `.' avant le `? ' ('? ' effectue la multiplication matricielle, alors que '.? '
effectue la multiplication terme à terme.
3. La commande y(p:q)crée un vecteur y formé des éléments d'indices compris entre m et n d’un
vecteur x.
4. Dans MatLab, les polynômes sont représentés par le vecteur de leurs coefficients par ordre de
puissance décroissante : par exemple, le polynôme x 3 + 4x 2 - 3x +5 est représenté par le vecteur :
[1 4 -3 5].
5. On peut calculer les racines d'un polynôme quelconque en utilisant la fonction roots.
R = roots([1 4 -3 5]) donne un vecteur contenant les racines du polynôme x 3 + 4x 2 - 3x +5.
II.5.1. FOR
La syntaxe est de la forme:
for compteur = début : pas : fin, ou for Matrice
expression,
expression;
end
II.5.2. WHILE
La syntaxe est de la forme:
while relation
expression;
end
La boucle est répétée tant que la relation reste vraie.
II.5.3. IF
La syntaxe peut revêtir une des formes suivantes :
if relation if relation if relation
expression; expression; expression;
end else elseif relation
expression; expression;
end else
expression;
end
II.5.4. Relations
Les opérateurs de relation sont :
< inférieur à
> supérieur à
<= inférieur ou égal à
>= supérieur ou égal à
== égal à
~= différent de
Quand une relation intervient entre des scalaires, le résultat est un scalaire qui vaut 1 ou 0 suivant
que la relation soit vraie ou fausse. Quand une relation intervient entre deux matrices de même
dimension, le résultat est une matrice constituée de 1 et de 0 selon la relation entre les éléments
correspondants des matrices.
Exercices :
1. Définir la matrice A = [1 2 3;4 5 6]. Vérifier les résultats de B = fix(pi*A) et C = cos(
pi*B) .
2. Définir le vecteur x = ( 0:0.2:3.0) ?, et entrer la séquence y = exp(-x);[ x y] .
Exemple : A étant une matrice, max(A) renvoie un vecteur ligne dont chaque composante
correspond au maximum de chacune des colonnes de A, alors que max(max(A)) renvoie
l'élément maximum de A.
Toutes ces fonctions peuvent renvoyer un ou plusieurs arguments : [X, V] = eig[A] renvoie une
matrice X dont les colonnes sont les vecteurs propres de A et une matrice diagonale V constituée
des valeurs propres de A. Alors que X = eig[A] renvoie un vecteur colonne X dont les
composantes sont les valeurs propres de A.
Z = input('Entrez la valeur de Z: ') affichera le texte et attendra qu’une valeur de Z soit entrée au
clavier.
Exercices :
1. Définir la chaîne s = 'Bonjour';
2. Vérifier successivement: size(s) et abs(s).
3. Ajouter s = [s, 'à tous'].
MatLab peut afficher des courbes planes (plot), des courbes 3D (plot3), des surfaces maillées 3D
(mesh) ou des surfaces à facettes 3D (surf).
Toutes ces commandes ouvrent une fenêtre graphique pour tracer la courbe. Les fenêtres
graphiques sont numérotées, la fenêtre active étant par défaut la fenêtre 1. Pour rendre active une
fenêtre graphique on fera précéder le tracé par la commande figure(n), où n est le numéro de la
fenêtre. La commande graphique suivante effacera le premier tracé pour dessiner le nouveau dans
la même fenêtre si la commande figure n'a pas été utilisée entre temps.
Il est possible de tracer des graphiques en surimpression à l'aide de la commande hold on. Cette
commande a pour effet de conserver le graphe présent avant de tracer le suivant. La commande
hold off annule cette possibilité.
Exemple :
Soit la fonction sinus définie dans le fichier sinus.m par : function y = sinus(x)
y = sin(x);
En exécutant: fplot('sinus', [-pi pi]), on obtiendra le graphe.
On peut ajouter un titre, des légendes ou du texte à un graphe par les commandes :
?? title('Ceci est le titre de la figure');
?? xlabel('Légende des abscisses');
?? ylabel('Légende des ordonnées');
?? gtext et text positionnement et écriture dans la zone graphique.
Un graphe possède des attributs qu’on peut modifier avec des commandes telles que axis et plot.
Il est également possible de tracer plusieurs graphes dans la même fenêtre à l'aide de la
commande subplot (voir aide).
Enfin des représentations types sont obtenues à l'aide des commandes polar, bar, hist, etc...
Exercices :
x = -pi : .01 : pi; y = sin(x); plot(x,y) tracera la fonction sinus(x) dans l'intervalle [ -? ,? ] avec un
pas de 0.01. Rajouter titres et légendes à chaque figure.
II.8.2. Courbes 3D
La commande plot3 est identique à la commande plot, elle ne fait appel qu'à une coordonnée
supplémentaire. La syntaxe de base est plot3(x,y,z). Les axes, titres et légendes se traitent comme
dans le cas des courbes planes.
Exercice:
A l'aide de plot3, tracer la courbe (x=sin(t), y=cos(t), z=t) pour t = 0:pi/50:10*pi.
La commande surf s'utilise de la même façon mais produit une surface à facettes colorées dont le
coloriage est modifiable avec la commande shading. L'angle de vue est géré par la commande
view. D'autres fonctions telles que meshz, surfc, surfl, contour et pcolor sont reliées à la
visualisation 3D.
Gestions des commandes et des fonctions Gestion des variables et de l'espace de travail
help aide who affiche les variables courantes
what listing du nom des M_files présents whos affiche les variables en format long
type impression d'un M_file save sauve l'espace de travail sur disque
lookfor recherche d'une entrée dans le help load charge l'espace de travail
which localise les fonctions et fichiers clear efface la mémoire
demo lance la démonstration quit quitter MatLab (aussi exit)
diary sauvegarde le texte d'une session
MatLab
III.2. Opérateurs :
( ) gère la priorité des opérations arithmétique ou ensère les arguments d'entrée des fonctions
III.4. Instructions :