Académique Documents
Professionnel Documents
Culture Documents
------------------------------------------------------------------------
Aide MATLAB
------------------------------------------------------------------------
-1-
ELE108 & ELE109 Aide MATLAB
Préambule
Matlab pour « MATtrix LABoratory », est un logiciel de calcul numérique développé par la
société mathworks (http://fr.mathworks.com/). Il est particulièrement performant pour le
calcul matriciel et dispose de grandes capacités graphiques pour, la synthèse et l’analyse de
modèles/signaux complexes. Son fonctionnement repose sur un langage de programmation
propre qui permet un développement très rapide d’algorithmes et de programmes. L'aspect
modulaire est l'un des plus grands atouts de MATLAB : l'utilisateur peut lui-même définir ses
propres fonctions, en regroupant des instructions MATLAB dans un fichier portant le suffixe
".m".
-2-
ELE108 & ELE109 Aide MATLAB
1. Espace de travail
L’interface MATLAB est divisée en plusieurs fenêtres.
2. Notions élémentaires
Matlab fonctionne de manière similaire à un shell Linux ou DOS. L’utilisateur rentre des
commandes, au niveau du Command Window, et Matlab les exécute.
>> 1+1
ans =
-3-
ELE108 & ELE109 Aide MATLAB
Il peut parfois être utile de stocker une valeur dans une variable pour l’utiliser plus tard.
L’affectation d’une variable en Matlab se fait au moyen du signe [=].
>> a=2
a=
b=
Certaines constantes sont prédéfinies par défaut dans ce logiciel. Les constantes les plus utilisées
sont :
>> pi
ans =
3.1416
>> i
ans =
0 + 1.0000i
>> j
ans =
0 + 1.0000i
>> eps
-4-
ELE108 & ELE109 Aide MATLAB
ans =
2.2204e-016
Pour accéder à l’aide de MATLAB, vous pouvez saisir dans le « Command Window », la
commande « Help » qui donne la liste de toutes les commandes classées par thèmes.
Vous pouvez également accéder à l’aide MATLAB comme indiqué par la figure suivante :
Matlab offre plusieurs solutions de sauvegarde des calculs et des programmes réalisés :
MATLAB est un logiciel modulaire faisant appel, en fonction des traitements envisagés, à une
bibliothèque donnée. Ces bibliothèques sont connues sous le nom de Toolbox ou boite à
outils.
-5-
ELE108 & ELE109 Aide MATLAB
Toutes les fonctions courantes et beaucoup parmi les moins courantes (dédiées à des
applications spécifiques) existent dans les différents Toolbox de MATLAB. La plupart d'entre
elles fonctionnent en complexe.
Exemple :
>> sin(pi/12)
ans =
0.2588
Pour les fonctions moins usuelles, il est recommandé de faire appel à l’aide MATLAB avec la
commande :
>> help nom de la fonction
Dans le reste des TP de cette UE, on n’utilisera, en plus des fonctions usuelles, que celles
incluses dans le Toolbox « Signal processing » et « Image processing ».
-6-
ELE108 & ELE109 Aide MATLAB
3. Matrices et tableaux
La structure de données de Matlab est le tableau1 ; même un scalaire est considéré comme
une matrice 1 × 1. Toutes les fonctions et opérations relatives aux tableaux sont très
optimisées et sont à utiliser aussi souvent que possible dans vos programmes MATLAB.
a=[1 2 ;3 4]
On obtient
a =
1 2
3 4
Les indices des tableaux (matrices) MATLAB commencent à 1 et non pas 0 comme en
langage C par exemple.
Ainsi, pour
A=
[1 2 ;3 4]
Si on a
b=[1 2 3 4 5 6 ; 7 8 9 10 11 12 ; 13 14 15 16 17 18]
-7-
ELE108 & ELE109 Aide MATLAB
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
Les colonnes de la matrice sont mises bout à bout pour obtenir ceci :
1
13
14
15
10
16
11
17
12
18
ans =
3 6
ans =
18
L'exemple ci-dessous montre comment MATLAB redimensionne au fil des saisies la taille
d'une matrice. Il est toutefois préférable de dimensionner dès le départ la matrice à la taille
maximale que l'on utilisera.
a=zeros(3,5);
Exemple :
>> a=56
a =
56
Matrice 1x1
>> a(2)=87
a =
56 87
>> a(5)=12
a =
-9-
ELE108 & ELE109 Aide MATLAB
56 87 0 0 12
La matrice est redimensionnée à 1x5 pour tenir compte du nouvel élément. Les éléments
non précisés sont par défaut mis à 0
>> a(3,2)=65
a =
56 87 0 0 12
0 0 0 0 0
0 65 0 0 0
Comme précédemment, la matrice est redimensionnée pour accepter le nouvel élément et
on trouve des 0 pour tous les éléments non précisés.
Si on a
b=
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
b=b.' donne
1 7 13
2 8 14
3 9 15
4 10 16
5 11 17
6 12 18
Remarque : b.' est la transposition d'une matrice comme montrée ci-dessus, b' est la
transposition hermitienne. En plus de l'opération de transposition précédente, chacun des
éléments de la matrice est remplacé par sa valeur conjuguée.
- 10 -
ELE108 & ELE109 Aide MATLAB
Exemple :
A = [ 1 2 3 4 5 6 7]
A(3:4)=[] produit
A = 1 2 5 6 7
Exemple :
A=[1 2 3 ; 4 5 6]
B=[0 7 ; 8 5]
C=[A B] produit
C =
1 2 3 0 7
4 5 6 8 5
A
➢ C=[A ; B ] produira une matrice de la forme
B
Exemple :
A= [1 2 ; 3 4]
B=[87 98];
C=[A;B] produit
- 11 -
ELE108 & ELE109 Aide MATLAB
C =
1 2
3 4
87 98
Exemple :
a=[1 2 ; 3 4]
• multiplication matricielle
a*a =
7 10
15 22
1 4
9 16
B=sin(A) donne une matrice de taille identique à A constituée des éléments Bi , j = sin( AI , j )
soit le vecteur f =[ 1 3 17 6 9 10 56 ];
f = 1 3 17 6 9 10 56
- 12 -
ELE108 & ELE109 Aide MATLAB
test = 0 0 1 0 0 1 1
ans = 3 6 7
find(f>=10) est équivalent à find(test) et retourne donc la position des éléments satisfaisant
la condition booléenne ici (f>=10)
Pour compter le nombre d'éléments satisfaisant une condition, par exemple valeur
supérieure ou égale à 10
Dans le cas d'une matrice rectangulaire, de N lignes par M colonnes, sum effectue la somme
colonne par colonne et retourne un vecteur d'une ligne par M colonnes
Exemple :
a = 1 2
3 4
sum(a) = 4 6
sum(sum(a)) = 10 dans le cas d'un vecteur sum renvoie la somme de tous les
éléments.
On peut utiliser la fonction mod ou rem. Voir aide pour les différences.
B=[1 0 1 1 0 0 1]
- 13 -
ELE108 & ELE109 Aide MATLAB
A+B = 1 1 2 1 1 0 2
rem(A+B,2)= 1 1 0 1 1 0 0
qui produit
b =
1 2 3 4
1 2 3 4
0 0 0 0
0 0 0 0
b=[a ; z]
b = 1 0 0 2 0 0 3 0 0 4 0 0
b=b(:).';
- 14 -
ELE108 & ELE109 Aide MATLAB
Soi*t x =[ 1 2 3 4 5 6 7 8 9 10]
donne
y =
1 3 5 7 9
4. Graphisme
4.1. Calcul d'une fonction
Exemple : supposons que l'on veuille tracer la fonction f ( x) = x 2 + x sin x dans l'intervalle [0
1];
x=[0:0.01:1]; % On définit le vecteur x qui contient 101 points répartis entre 0 et 1 par pas de
0,01
Soit x2 le vecteur contenant les abscisses et y2 les ordonnées d'une deuxième courbe.
- 15 -
ELE108 & ELE109 Aide MATLAB
Si on veut afficher cette deuxième courbe dans la même figure, sans que la précédente ne
s'efface, on fait appel à « hold on » avant de tracer.
hold on
plot(x2,y2)
➢ Ajout de légende
Legend(‘Variable 1’, ‘Variable 2’)
➢ Ajout de titre
title(‘Titre de la figure’)
Si on veut tracer une courbe dans une autre fenêtre, on utilise l'instruction figure, ce qui
donne par
Exemple :
figure
plot(x2,y2)
plot(x1,y1,'-',x2,y2,'- -')
Cette instruction provoque l'affichage simultané des 2 courbes sur un même système d'axe.
Le '-' indique que la première courbe sera tracée en trait plein et '- -' que la deuxième courbe
sera tracée en trait pointillé.
MATLAB attribue des couleurs par défaut aux courbes. Il est possible de modifier la
couleur, le style du trait et celui des points, en spécifiant après chaque couple (abscisse,
ordonnée) une chaîne de caractères (entre primes) pouvant contenir les codes suivants
(obtenus en tapant help plot.
- 16 -
ELE108 & ELE109 Aide MATLAB
A voir aussi semilogx, semilogy qui s'utilise comme plot et qui permet d'avoir un axe
logarithmique soit en x soit en y.
- 17 -
ELE108 & ELE109 Aide MATLAB
for compteurdeboucle=1:N
Instructions…
end
for variable=vecteur
Instructions…..
end
Exemple :
for b=a
b provoque l'affichage de b
donne
b =0
b =0.10000000000000
b = 0.20000000000000
while condition
instruction
end
- 18 -
ELE108 & ELE109 Aide MATLAB
while a<1.5
end
donne
a =0.40000000000000
a = 0.80000000000000
a =1.20000000000000
a = 1.60000000000000
6. Programmation
6.1. Travail avec les « .m files »
Afin d’éviter d’avoir à retaper une série de commandes, il est possible de créer un
programme MATLAB, connu sous le nom de « fichier .m ».
Il s’agit, à l’aide de l’éditeur de MATLAB (Menu « Home ! New ! Script »), de créer un
fichier en format texte qui contient une série de commandes MATLAB.
- 19 -
ELE108 & ELE109 Aide MATLAB
Une fois le fichier sauvegardé (sous le nom nomdefichier.m par exemple), il s’agit de
l’appeler dans la fenêtre Commande Window de MATLAB à l’aide de la commande :
>> nomdefichier
6.2. Fonctions
Une fonction est un m-file particulier : on lui passe des arguments et il retourne une ou
plusieurs valeurs. Il faut simplement commencer le m-file par le mot function, lui préciser
les valeurs de retour et les arguments.
Remarques importantes :
• le m-file et la fonction doivent avoir le même nom,
• il peut y avoir plusieurs paramètres (il suffit de les séparer par des virgules),
• il peut y avoir plusieurs variables de retour (les mettre entre crochets et les séparer
par des virgules),
• le « ; » après une instruction donnée permet d’éviter l’affichage des résultats des
calculs intermédiaires au niveau du Command Window,
• les commentaires doivent commencer par « % ».
- 20 -
ELE108 & ELE109 Aide MATLAB
7. Tutoriaux
Des tutoriaux en anglais de courte durée sont aussi disponibles sur youtube et
permettent de vous guider, si nécessaire.
- 21 -