Introduction à MATLAB et ses fonctionnalités
Introduction à MATLAB et ses fonctionnalités
Initiation à MATLAB
Initiation à MATLAB
1. Définition
2
Initiation à MATLAB
1. Définition
3
Initiation à MATLAB
1. Définition
4
Initiation à MATLAB
2. L’environnement MATLAB
Blockset
Fichiers MDL
SIMULINK
Fichiers MEX
Fichiers M
MATLAB
Toolboxes
Fenêtre de Fenêtres
GUI commande graphiques
5
Initiation à MATLAB
2. L’environnement MATLAB
La fenêtre La fenêtre
La fenêtre Command La fenêtre
Workspace Command
Current Folder Window History
6
Initiation à MATLAB
2. L’environnement MATLAB
➢ La fenêtre de commande (ou ligne de commande) :
c’est l’outil de base de Matlab. Elle permet entre autre de faire n’importe quelle
opération, de définir et affecter les variables d’environnement, d’utiliser les toolboxes via
leurs fonctions, …
7
Initiation à MATLAB
2. L’environnement MATLAB
8
Initiation à MATLAB
2. L’environnement MATLAB
9
Initiation à MATLAB
2. L’environnement MATLAB
10
Initiation à MATLAB
2. L’environnement MATLAB
Deux modes de fonctionnement :
➢ Mode interactif : MATLAB exécute les instructions au fur et à mesure
qu’elles sont données par l’utilisateur.
➢ Mode exécutif : MATLAB exécute ligne par ligne un programme en
langage MATLAB écrit dans un fichier M , ou un fichier exécutable MEX.
• Le moyen le plus simple pour utiliser MATLAB est d’écrire directement dans
la fenêtre de commande (Command Window) juste après le curseur (prompt)
>>
• Pour calculer une expression mathématique il suffit de l’écrire comme ceci :
• >> 6+9 Puis on clique sur la touche Entrer pour voir le résultat.
ans = 15 11
Initiation à MATLAB
2. L’environnement MATLAB
• Si nous voulons qu’une expression soit calculée mais sans afficher le
résultat, on ajoute un point virgule ‘;’ à la fin de l’expression comme suit :
>> 9+6 ;
>>
• Le calcul effectué précédemment a été stocké dans une variable de nom
« ans ».
Si je rentre une nouvelle commande pour un nouveau calcul, la variable « ans »
prendra comme valeur le nouveau résultat.
• Les commentaires en Matlab sont précédés d’un pourcentage %
• Exemple
>> som=5+5 % je fais une somme
som = 10
12
Initiation à MATLAB
2. L’environnement MATLAB
Gestion des fichiers du répertoire de travail
Un certain nombre de commandes permettent de gérer les fichiers du
répertoire de travail.
>>dir donne la liste des fichiers du répertoire de travail.
>>cd (‘ spécifier le répertoire ’) permet de changer le répertoire de travail.
>>type nom_de_fichier permet d’afficher le contenu d’un fichier.
>> delete permet de détruire un fichier.
>>edit permet d’ouvrir un éditeur de texte. Le choix de l’éditeur a été
effectué au moment de l’installation de matlab sur votre machine.
13
Initiation à MATLAB
3. Les variables
3. Les variables
Pour créer une variable on utilise la structure simple :
nom_variable = valeur
>> var_1 = 2
var_ 1= 2
>> var2 = 3;
>> b = ‘bonjour’;
Pour fournir la liste des variables et des fonctions définies dans le
workspace:
>> who
>> Your variables are:
var_1 var2 b
Attention MATLAB fait la différence entre les majuscules et les minuscules. 15
Initiation à MATLAB
3. Les variables
➢ Pour supprimer une variable de la mémoire de Matlab (workspace) on utilise la
commande clear, et pour supprimer toutes les variables on tape : clear all
Exemple : >> clear var_1
>> who
Your variables are:
Var2 b
>>clear all % supprimer les variable de la mémoire de Matlab
>>who
>>
➢ On peut aussi la sélectionner dans l’espace de travail et la supprimer avec un
clic droit puis « Delete »
% ici dans cet exemple rien à afficher tous les variables ont était détruit. 16
Initiation à MATLAB
3. Les variables
➢ Opérations élémentaires:
+ Plus ➢ Exemples:
- Moins >> 4/2
* Produit ans = 2
.* Multiplication élément par élément >> 2\4
/ Division a droite ans = 2
./ Division de droite élément par élément >> 2^3
\ Division à gauche ans = 8
.\ Division gauche élément par élément >> 2*3
^ Puissance ans = 6
.^ Elevé à une puissance d’une matrice
élément par élément
' Le transposé
17
Initiation à MATLAB
3. Les variables
18
Initiation à MATLAB
Le type Exemples
Entier 5 -83
Réel en notation décimale 0.0205 3.1415926
Réel en notation scientifique 1.6101e-20 7.0555 e 23 (1.6101x10-20 et 7.0555x1023)
Complexe 5+3i -3.14159j
19
Initiation à MATLAB
MATLAB utilise toujours les nombres réels (double precision) pour faire
les calcules, ce qui permet d’obtenir une précision de calcule allant
jusqu’aux 16 chiffres significatifs.
Mais il faut noter les points suivants :
Le résultat d’une opération de calcule est par défaut affichée avec quatre
chiffres après la virgule.
20
Initiation à MATLAB
ans =
1.2246e-016
24
Initiation à MATLAB
25
Initiation à MATLAB
7. Entrées-sorties
>> save % écrit toutes les variables du workspace dans le fichier [Link]
>>load % charge dans le workspace toutes les variables du fichier [Link]
27
Initiation à MATLAB
8. Vecteurs
Par défaut, le vecteur est une ligne à plusieurs colonnes
a) vecteur ligne par énumération des composantes:
>> v = [1 3.4 5 -6]
v = 1.0000 3.4000 5.0000 -6.0000
b) vecteur ligne par description:
>> x = [0 : 1: 3] % [valeur-initiale : incrément : valeur-finale]
x= 0 1 2 3
c) vecteur colonne:
>>xcol = x’
xcol =
0
1
2
28
3
Initiation à MATLAB
8. Vecteurs
d) génération de vecteurs métriques:
linspace(n,m,p) p nombres de n à m
>> x = linspace(0, pi, 6) % génère 6 valeurs réparties de 0 à pi)
x = 0 0.6283 1.2566 1.8850 2.5133 3.1416
e) Adressages et indexages:
>> x(3) % 3ème élément du vecteur x
ans = 1.2566
>>x(2 : 4) % un bloc de composantes
ans = 0.6283 1.2566 1.8850
>>x([5 3 6 1]) % une sélection de composantes (on les désigne avec un autre
vecteur!)
ans= 2.5133 1.2566 3.1416 0 29
Initiation à MATLAB
8. Vecteurs
f) Combinaison de vecteurs:
>> a = [1:3]
a=123
>> b=[Link]
b = 10 20 30
>> c = [a b]
c = 1 2 3 10 20 30
Vous pouvez aussi utiliser un incrément négatif pour définir un vecteur en
partant de la dernière composante.
>> d=[a(2:-1:1) b] % on accole b avec une portion de a dans l’ordre renversé
d = 2 1 10 20 30
>> d=[0:-2:-8]
d =0 -2 -4 -6 -8 30
Initiation à MATLAB
8. Vecteurs
g) Vecteurs spéciaux
ones(1,n) : vecteur ligne de longueur n dont tous les éléments valent 1.
ones(m,1) : vecteur colonne de longueur m dont tous les éléments valent 1.
zeros(1,n) : vecteur ligne de longueur n dont tous les éléments valent 0 .
zeros(m,1) : vecteur colonne de longueur m dont tous les éléments valent 0 .
rand(1,n) : vecteur ligne de longueur n dont les éléments sont générés de
manière aléatoire entre 0 et 1.
rand(m,1) : vecteur colonne de longueur m dont les éléments sont générés de
manière aléatoire entre 0 et 1.
31
Initiation à MATLAB
9. Matrices
a) Création de matrices
>>m1 = [ 1 2 3 ; 4 5 6 ; 7 8 9] % on sépare les lignes par des points-virgules
m1 = 1 2 3
456
789
On peut étendre aux matrices les autres manières de définir des vecteurs.
>> m2 = [Link] ; [Link]
m2 = 1 2 3
11 12 13
>> m3 = [Link] ; 1 3.1623 10]
m3 = 1 2 3
1 3.1623 10
32
Initiation à MATLAB
9. Matrices
a) Création de matrices
On peut construire très simplement une matrice « par blocs ». Si A, B, C, D désignent
4 matrices (aux dimensions compatibles), on définit la matrice blocs
9. Matrices
b) Transposition
L’opérateur apostrophe utilisé pour créer un vecteur colonne est en fait l’opérateur
transposition:
>> m2’
ans = 1 11
2 12
3 13
c) Opérations scalaires-matrices
Une telle opération agit sur chaque élément de la matrice:
>> m2’ * 10 % de même: 4*m2; m2-10 ;m2/4
ans = 10 110
20 120
30 130
34
Initiation à MATLAB
9. Matrices
Transposition
Z=[1+5i, 2+6i; 3+7i, 4+8i]
W=Z’
W= 1 - 5i 3 - 7i
2 - 6i 4 - 8i
W=Z,’
1+ 5. i 3+7i
2 + 6i 4 + 8i
35
Initiation à MATLAB
9. Matrices
9. Matrices
9. Matrices
Division élément par élément:
>> m2./m3 % chaque élément de m2 est divisé par l’élément équivalent de m3
ans = 1.0000 1.0000 1.0000
11.0000 3.7947 1.3000
>>m2.\m3 % chaque élément de m3 est divisé par l ’élément équivalent m2
ans = 1.0000 1.0000 1.0000
0.0909 0.2635 0.7692
e) Matrices particulières
eye(n) : la matrice identité dans Rn,n
ones(m,n) : la matrice à m lignes et n colonnes dont tous les éléments valent 1
zeros(m,n) : la matrice à m lignes et n colonnes dont tous les éléments valent 0
rand(m,n) : une matrice à m lignes et n colonnes dont les éléments sont
générés de manière aléatoire entre 0 et 1 38
Initiation à MATLAB
9. Matrices
9. Matrices
40
Initiation à MATLAB
9. Matrices
Fonctions pour l’analyse des données :
Soient x=[6 4 1 2 5 3] et A=[9 8 4 ; 1 6 5; 3 2 7]
Mx=max(x) =6 ➔ l’élément le plus grand du vecteur
mA=max(A) =[9 8 7] ➔ un vecteur contenant la valeur maximale de chaque colonne
de la matrice A .
Mvx= mean(x)=3,5 ➔la valeur moyenne du vecteur x
MvA=mean (A) = [4.3333 5.3333 5.3333] la valeur moyenne de chaque vecteur
colonne
Sx=sort (x) =[1 2 3 4 5 6]➔ classe les éléments du vecteur x selon l’ordre croissant .
SA=sort (A) ou sort(A,1) ou sort(A,1,'ascend') ➔ classe les éléments de chaque
colonne de la matrice A selon l’ordre croissant (SA3=sort(A,1,'descend’) pour l’ordre
décroissant). SA= 1 2 4
3 6 5
9 8 7 41
Initiation à MATLAB
9. Matrices
Fonctions pour l’analyse des données :
SA2=sort(A,2) ou sort(A,2,'ascend') ➔ classe les éléments de chaque ligne de la
matrice A selon l’ordre croissant .
SA2= 4 8 9
1 5 6
2 3 7
SA3=sort(A,2,'descend’) ➔ classe les éléments de chaque ligne de la matrice A selon
l’ordre décroissant .
SA3= 9 8 4
6 5 1
7 3 2
SA3=sort(A,2,'descend’)
42
Initiation à MATLAB
9. Matrices A=
➢ Trouver les indices d’une valeur
5 11 2
>> [r,c]=find(A==2) Ici, nous avons demandé à MATLAB de trouver 8 3 25
r=
la position de la valeur 2 dans la matrice A. 2 1 8
3 La valeur 2 se trouve à la ligne 3 colonne 1 et à
1 la ligne 1, colonne 3.
Remarquez, l’égalité est désignée par
c= l’opérateur == . L’opérateur = est utilisé pour
1 affecter une valeur à une variable.
3
>> A(r,c)=5
A= Avec cette commande, on remplace les deux
5 11 5 valeurs localisées par 5
8 3 25
5 1 5 43
Initiation à MATLAB
45
Initiation à MATLAB
46
Initiation à MATLAB
❖ Un tel fichier peut ensuite être relu soit par Matlab avec la fonction load,
soit par d'autres programmes.
48
Initiation à MATLAB
12. Graphique 2D
Une courbe 2D est représentée par une série d'abscisses et une série d'ordonnées. Le
logiciel trace généralement des droites entre ces points. La fonction de MATLAB
s'appelle plot.
a) L'instruction plot
L'utilisation la plus simple de l'instruction plot est la suivante.
plot ( vecteur d'abscisses, vecteur d'ordonnées ) ou encore,
plot ([ x1 x2 ... xn ], [ y1 y2 ... yn ])
Par exemple, si on veut tracer sin(x) sur l'intervalle [0; 2π], on commence par définir
une série (de taille raisonnable 100) de valeurs équidistantes sur cet intervalle :
>> x = 0: 2*pi/100 : 2*pi;
puis, comme la fonction sin peut s'appliquer terme à terme à un tableau :
>> plot(x, cos(x))
qui fournit le graphe suivant dans la fenêtre graphique :
49
Initiation à MATLAB
12. Graphique 2D
Les abscisses peuvent donc être une fonction de x plutôt que x lui-même. En
d'autres termes, il est donc possible de tracer des courbes paramétrées :
>> plot(sin(x),cos(x))
50
Initiation à MATLAB
12. Graphique 2D
b) Superposer plusieurs courbes
51
Initiation à MATLAB
12. Graphique 2D
Essayez par exemple de tracer le graphe de la fonction x ==> x*sin (x) sur [0; 2π].
>> x = 0: 0.1: 2*pi;
>> plot(x, x*sin(x))
??? Error using ==> *
Inner matrix dimensions must agree.
Pour MATLAB vous manipulez des tableaux : x en est un, et sin(x) en est un de
même taille, et tous deux sont des vecteurs lignes.
Est-ce que cela a un sens de multiplier deux vecteurs lignes au sens des matrices ?
Il fallait utiliser la multiplication terme à terme .* soit :
>> plot(x, x.*sin(x))
52
Initiation à MATLAB
12. Graphique 2D
53
Initiation à MATLAB
12. Graphique 2D
c) Attributs de courbes
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) : Specifier Color
r Red
Specifier Line Style
g Green
- solid line (default)
b blue
-- dashed line
c cyan
: dotted line
m magenta
-. dash-dot line
y yellow
k black
w white 54
Initiation à MATLAB
12. Graphique 2D
c) Attributs de courbes
Exemple
Les codes peuvent être combinés entre eux. Par exemple :
>> plot(x,sin(x),':',x,cos(x),'r-.')
55
Initiation à MATLAB
12. Graphique 2D
56
Initiation à MATLAB
12. Graphique 2D
d) Décoration des graphiques
Titre
C'est l'instruction title à laquelle il faut fournir une chaîne de caractères. Le titre
apparaît en haut de la fenêtre graphique :
>> plot(x,cos(x),x,sin(x))
>> title('Fonctions sin et cos')
57
Initiation à MATLAB
12. Graphique 2D
d) Décoration des graphiques
Labels
Il s'agit d'afficher quelque chose sous les abscisses et à coté de l'axe des ordonnées :
>> plot(x,cos(x))
>> xlabel('Abscisse')
>> ylabel('Ordonnée')
Légendes
Utilisation de l'instruction legend. Il faut lui communiquer autant de chaînes de
caractères que de courbes tracées à l'écran. Un cadre est alors tracé sur le graphique,
qui affiche en face du style de chaque courbe, le texte correspondant. Par exemple :
>> plot(x,cos(x),':',x,sin(x),'-.',x,sqrt(x),'--')
>> legend('cosinus','sinus','racine')
58
Initiation à MATLAB
12. Graphique 2D
➢ Les pavés sont numérotés dans le sens de la lecture d'un texte : de gauche à droite et
de haut en bas
59
Initiation à MATLAB
12. Graphique 2D
Exemple
>> subplot(221)
Subplot(221) Subplot(222)
>> plot(x,sin(x))
>> subplot(222)
>> plot(x,cos(x),x,sin(x),'-.')
>> subplot(223)
>> plot(x, x.^2+5)
>> subplot(224)
>> plot(x, exp(-x)) Subplot(223)
Subplot(224)
60
Initiation à MATLAB
12. Graphique 2D
Tous les paramètres de formatage du graphique (épaisseur des lignes, échelles, limite
d’axes) peuvent être modifiés en ajoutant des arguments (optionnels):
plot (x, y, LineSpec, PropertyName, PropertyValue)
LineSpec: « line specifiers » qui définissent le style et la couleur des lignes ainsi que
le type de marqueurs. Ils peuvent se combiner entre eux et l’ordre n’importe pas.
Style Line Spec Couleur LineSpec Marqueur LineSpec
12. Graphique 2D
PropertyName et PropertyValue permettent de spécifier l’épaisseur des lignes, la
taille des marqueurs ainsi que leur apparence ([Link]. couleur du contour).
62
Initiation à MATLAB
12. Graphique 2D
Exemple:
x = [-pi:0.5:pi]
y = sin(x)
figure
plot(x, y,'--b*','LineWidth',2,'MarkerSize',12)
63
Initiation à MATLAB
12. Graphique 2D
Place une légende pour chaque jeu de données. L’emplacement peut être spécifié
legend(‘string1’,…,‘stringN’,‘Location’,’northwest’);
Il existe des arguments optionnels pour choisir l’emplacement et l’orientation:
Location specifier Description Orientation Description
Vertical Une légende sur
NorthEastOutside en dehors des axes sur la l’autre
droite
horizontal À la suite
Best à l’intérieur des axes dans
une position qui ne Format Description
dérange pas le graphique ‘off’ supprime la légende
NorthEast En haut à droite boxoff / boxon supprime/ajoute un
NorthWest En haut à gauche cadre autour de la
SouthWest en bas à droite légende
12. Graphique 2D
legend('sin(x)','cos(x)','Location','NorthWest','orientation','horizontal')
legend boxoff
%legend 'off'
65
Initiation à MATLAB
12. Graphique 2D
La commande « title »
Ajoute un titre à la fenêtre du graphique. Le format du texte peut être spécifié à l’aide
d’arguments optionnels ainsi que de modifiants:
title(‘string’,PropertyName,PropertyValue,...)
Modifiant Description Modifiant Description
\bf en gras \fontname{…} nom de la police
\it en italic \fontsize{…} grandeur des
polices (scalair)
\rm normal
^{…} / _{…} exposant / indice
Lettres Grecques
\alpha α \phi ϕ
\beta β \delta Δ
\gamma γ \Gamma Γ 66
Initiation à MATLAB
12. Graphique 2D
Exemples:
title('\ite^{\omega\tau} = cos(\omega\tau) + isin(\omega\tau)’)
Il est possible d’écrire le titre sur plusieurs lignes en séparant les lignes par de la façon
suivante : {'ligne 1';'ligne 2’}.
title({'\fontname{Arial}exemple';'\fontname{Arial}de titre'}, 'FontSize', 15)
12. Graphique 2D
La commande « axis », « xlim » et « ylim »
Ce sont diverses commandes permettant de définir les limites des axes du
graphique.
axis([xmin xmax ymin ymax]);
xlim([xmin xmax]);
Les commande « gcf » et « gca » :
Les commandes gcf (get current figure) et gca (get current axes) permettent de
directement manipuler soit la figure en cours, soit tous les objets graphiques dans la
fenêtre en cours.
Exemple:
x=1:100; y=log(x);
plot(x,y);
set(gcf,'Color','green'); % change couleur de fond autour de l’axe
set(gca,'Color','red'); % change couleur de fond du graphique 68
Initiation à MATLAB
13. Graphique 3D
➢ Pour tracer le graphe d’une fonction z = f(x, y) il faut d’abord générer une grille de
points, évaluer la fonction en chaque point, puis tracer le graphe.
➢ Soit l'exemple suivant d'une fonction à 2 variables :
sin( x 2 + y 2 )
z=
x2 + y 2
➢ Pour x et y variant de -π à π avec un pas de π /10.
>>x = -pi:pi/10:pi;
>>y=x;
➢ Dans la prochaine étape on génère deux matrices carrées X et Y qui définissent le
domaine de calcul de z, on utilisera pour ceci la fonction meshgrid pour le tracé.
>> [X,Y]= meshgrid(x, y);
La fonction meshgrid génère une grille de points représentée par les matrices X et Y.
Chaque ligne est une copie de x, chaque colonne est une copie de y.
69
Initiation à MATLAB
13. Graphique 3D
70
Initiation à MATLAB
12. Graphique 3D
71
Initiation à MATLAB
12. Graphique 3D
72
Initiation à MATLAB
73
Initiation à MATLAB
Exemple:
>> saveas(gcf, 'Figure 1','jpeg’)
Permet de sauver la figure courante (gcf) en format jpeg 74
Programmation sous Matlab
1. Fichiers script
➢ Un script est un fichier contenant une suite d’instructions qui sont exécutées
séquentiellement à l’appel du fichier.
➢ L’utilisation d’un script est très courante, cela évite d’avoir à saisir plusieurs fois
de longues suites d’instructions.
➢ Un scripts est aussi utilisé pour la saisie des données. Dans le cas de grandes
matrices, l'utilisation des scripts vous permet de corriger facilement et rapidement
les erreurs de saisie.
➢ Pour éditer un script, on peut utiliser son éditeur préféré ou bien l’éditeur par
défaut de Matlab avec la commande edit. Le fichier doit être sauvegardé avec
l’extension .m. 75
Programmation sous Matlab
1. Fichiers script
➢ Nous proposons, dans ce qui suit, un exemple de script, stocké dans un fichier appelé
courbe.m, dont le code permet de tracer la courbe de la fonction y = x²+2x+2, sur
l'intervalle [-5, 5].
76
Programmation sous Matlab
1. Fichiers script
➢ Pour exécuter un script, dans la fenêtre de commande de MATLAB, il suffit de
de cliquer sur la flèche verte de l’éditeur
➢ Ou mettre son nom après le prompt
>> courbe
L'exécution de ce script permet de tracer la courbe de parabole suivante :
77
Programmation sous Matlab
1. Fichiers script
78
Programmation sous Matlab
1. Fichiers script
nargin peut aussi être utilisée pour connaitre le nombre prévu d'arguments d'entrée.
Exemple:
>>nargin('testarg1')
ans =2
La commande nargout fonctionne de manière analogue pour les arguments de sortie.
Instruction Description
nargin nombre d'arguments d'entrée d'une fonction
nargout nombre d'arguments de sortie d'une fonction
break sort d'une boucle while ou for.
return retourne dans le programme appelant sans aller jusqu'a la n de la fonction.
pause interrompt l’exécution jusqu'a ce que l'utilisateur tape un return
pause (n) interrompt l’exécution pendant n secondes 79
79
Programmation sous Matlab
2. Opérations logiques
Changer le flux d’exécution dans un programme est effectué à l’aide d’instructions de
contrôle. Ceci implique souvent des comparaisons entre variables.
Les opérateurs de comparaison dans Matlab sont :
> Plus grand que <= Plus petit ou égal à
< Plus petit == Égale à
>= Plus grand ou égal à ~= Différent de
2. Opérations logiques
La comparaison peut être effectuée à toute une matrice, coefficient par coefficient.
Exemple :
>> x = [1 2 3 ; 4 5 6 ; 7 8 9]; >> A=[1 4 ; 3 2]
>> x >= 5 A=
ans = 14
000 32
011 >> A> 2
111 ans =
01
10
81
Programmation sous Matlab
2. Opérations logiques
Il est possible combiner des matrices logiques (de même taille). Les opérateurs
logiques sont alors exécutés coefficient par coefficient, et la matrice résultante est de
même taille que les matrices utilisées, avec le résultat de la comparaison affecté à
chaque coefficient (1er exemple ci-dessous).
>> A = [0 1 1 0 1];
>> B = [1 1 0 0 1];
>> A&B
ans =
01001
On peut aussi combiner plusieurs comparaisons / opérateurs logiques
>> x = 5;
>> y = 10;
>> (x > 0) & (y > 5) & (x < y)
ans = 1 82
Programmation sous Matlab
83
Programmation sous Matlab
84
Programmation sous Matlab
Exemples:
88
Programmation sous Matlab
Exemple:
Nous pouvons aussi remplir
directement la matrice directement à
chaque pas de la boucle.
Pour quitter une boucle, nous avons les instructions break, return et error(‘message’).
➢ return
Cette instruction permet de revenir au fichier M ayant appelé le programme courant
ou à la ligne de commande MATLAB.
➢ error('message’)
Affiche le message spécifié et interrompt l'exécution du programme.
➢ Break
Termine l'exécution d'une boucle (For /while), il permet de sortir de la boucle la
plus proche.
95
Programmation sous Matlab
➢ Consiste à mettre des points d'arrêts dans le code. Matlab va s'arrêter lorsqu'il va
tenter d'exécuter le code présent sur ces lignes.
➢ Pendant cette “pause”, vous pouvez exécuter des commandes à partir de la fenêtre
de commande, vous pouvez afficher la valeur des variables et même les modifier.
➢ Nous pouvons utiliser la commande dbtype pour afficher les lignes de code
numérotées de ces fonctions.
➢ Nous pouvons fixer des points d'arrêt dans les différentes fonctions, nous utiliserons
pour cela la commande dbstop.
96
Programmation sous Matlab
98
Programmation sous Matlab
>> ChebT(5)
t1 = 1 0
10 else
K>>
On se retrouve alors dans le mode "debug" signalé par l'invite " K>>". Nous pouvons,
à ce niveau, utiliser les commandes de mise au point (dbstep, dbcont, dbstack, dbstop,
etc.).
La commande dbstep permet de progresser ligne par ligne dans l'exécution de la
fonction ChebT.
K>> dbstep
11 for k=2:n
K>>
99
Programmation sous Matlab
➢ Les variables définies dans l'espace de travail ne sont pas visibles pour la fonction
ChebT. Seules les variables définies dans la fonction ChebT sont visibles dans
l’espace de travail. 10
0
Programmation sous Matlab
➢ On retrouve les variables définies auparavant, avant d’entrer dans le mode debug,
dans l’espace de travail MATLAB.
10
1
Programmation sous Matlab
7. Tableaux multidimensionnels
1. Définition
➢ MATLAB admet des tableaux à plusieurs dimensions, supérieures à 2 pour le cas
particulier des matrices.
7. Tableaux multidimensionnels
7. Tableaux multidimensionnels
2. Génération d’un tableau multidimensionnel
➢ L’affichage se fait par page, le signe ‘:’ indique « toutes » les lignes et toutes
les colonnes de chaque page.
➢ Pour accéder à l’élément de la 2ème page, 4ème ligne et 1ère colonne :
>> tableau1 (4,1,2)
ans =3.1400
104
Programmation sous Matlab
7. Tableaux multidimensionnels
>> tableau4(: ,: ,: ,1)=tableau1;
>> tableau4(: ,: ,: ,2)=randn(size(tableau1));
>> size(tableau4)
ans = Dim 4
4 3 3 2
Lignes Dim 3
colonnes
7. Tableaux multidimensionnels
➢ Comme pour les matrices, on peut créer des tableaux particuliers en utilisant les
commandes ones, randn, zeros, etc.
>> taille=size(tableau1);
>> taille = 4 3 3
>> tableau5=ones(taille)+randn(taille);
>> ndims(tableau1)
ans = 3
>> ndims(tableau4)
ans = 4
106
Programmation sous Matlab
7. Tableaux multidimensionnels
➢ Pour supprimer la 2ème colonne dans toutes les pages de tableau1, on doit la
remplacer par un ensemble vide.
>> tableau1(:,2,:)=[]
% La première page de ce nouveau tableau donne :
>> tableau1(:,:,1)
ans = 8 4
69
75
13
107
Programmation sous Matlab
7. Tableaux multidimensionnels
3. Utilisation pratique des tableaux multidimensionnels dans l’industrie
108
Programmation sous Matlab
7. Tableaux multidimensionnels
La vitesse 1: La vitesse 2:
Température Débit Pression Température Débit Pression
20,1 0,48 1,67 30 0,54 1,04
21,0 0,50 1,20 30,6 0,62 1,03
21,2 0,52 1,18 30,8 0,65 1,01
21,5 0,55 1,16 31 0,67 0,96
21,8 0,57 1,12 31,2 0,69 0,94
21,7 0,60 1,08 31,5 0,71 0,93
21,9 0,62 1,08 31,7 0,81 0,91
22,1 0,64 1,07 31,9 0,91 0,89
22,5 0,67 1,07 32,2 1,01 0,84
22,8 0,68 1,02 32,5 1,1 0,81 109
Programmation sous Matlab
➢ Le tableau multidimensionnel sera le suivant : 2 pages de 3 colonnes et 10 lignes.
temp_1=[20.1 21 21.2 21.5 21.8 21.7 21.9 22.1 22.5 22.8]’;
pression_1=[1.67 1.20 1.18 1.16 1.12 1.08 1.08 1.07 1.04 1.02]’;
debit_1=[0.48 0.50 0.52 0.55 0.57 0.60 0.62 0.64 0.67 0.68]’;
➢ La concaténation selon la 2ème dimension se fera pour ces vecteurs colonnes
vit1=cat(2,temp_1,pression_1,debit_1) vit2=cat(2,temp_2,pression_2,debit_2)
vit1 = 20.1000 1.6700 0.4800 vit2 = 30.0000 1.0400 0.5400
21.0000 1.2000 0.5000 30.6000 1.0300 0.6200
21.2000 1.1800 0.5200 30.8000 1.0100 0.6500
21.5000 1.1600 0.5500 31.0000 0.9600 0.6700
21.8000 1.1200 0.5700 31.2000 0.9400 0.6900
21.7000 1.0800 0.6000 31.5000 0.9300 0.7100
21.9000 1.0800 0.6200 31.7000 0.9100 0.8100
22.1000 1.0700 0.6400 31.9000 0.8900 0.9100
22.5000 1.0400 0.6700 32.2000 0.8400 1.0100
22.8000 1.0200 0.6800 32.5000 0.8100 1.1000 110
Programmation sous Matlab
7. Tableaux multidimensionnels
➢ Le tableau multidimensionnel des 2 séries de mesures s’obtient par concaténation
selon la dimension.
➢ On désire tracer la courbe des mesures de chaque capteur sur le même graphique
pour visualiser l’effet de la vitesse du moteur sur cette mesure (température,
pression, débit).
vit12= cat(3, vit1,vit2); hold on
subplot(1,3,1) plot(1:10,vit12(:,2,2),’g’)
plot(1:10,vit12(:,1,1)) title('Pression (Bar)'), grid on
grid on subplot(1,3,3)
hold on plot(1:10,vit12(:,3,1))
plot(1:10,vit12(:,1,2),’g’) grid on
title('Temp. °C') hold on
subplot(1,3,2) plot(1:10,vit12(:,3,2),’g’)
plot(1:10,vit12(:,2,1)) title('Débit l/mn')
Programmation sous Matlab
➢ Les chaînes d’une même colonne doivent avoir la même longueur (même nombre de
caractères). Dans le cas précédent, nous avons rajouter autant de blancs aux chaînes les
plus courtes afin d’avoir la même longueur que la plus grande.
➢ Un autre moyen de construire des cellules est d’utiliser la commande cell.
>> x=cell(2,3)
x=[][][]
[][][]
Cette commande crée une cellule vide taille 2x3. On peut spécifier après chaque
élément de la cellule.
4. Concaténation de cellules :
➢ Nous créons 2 cellules, Cell3 et Cell4 que nous allons concaténer en une cellule
Cell5.
>> Cell3={[1 3;5 9] ['2 Sources chaudes';'Saint Nom ';'Saint Lazare ‘]}
Cell3 =
[2x2 double] [3x17 char]
➢ Pour accéder au 1er élément de la 1ère cellule de Cell5, nous devons faire deux
fois l’indexation {i} {i}.
>> Cell5{1}{1} >> Cell5{1}
ans = 1 3 ans =
59 [2x2 double] [3x17 char] 116
Programmation sous Matlab
Un script
➢ Un fichier texte qui contient une série d’instructions Matlab
➢ Les instructions sont exécutées ligne après ligne
➢ Pour lancer l’exécution, il suffit d'entrer le nom du script sur la console
➢ Les variables créées dans ce fichier sont conservées dans le workspace
Une fonction
➢ Le fichier texte commence par l'instruction function
➢ Effectue une suite d'instruction en fonction des arguments d'entrée
➢ Retourne un ou plusieurs résultats
➢ Les variables créées dans ce fichier sont invisibles dans le workspace
118
Traitement des données sous Matlab
1. Visualisation
➢ Les graphiques simples
La fonction plot permet de tracer des courbes en Matlab. Les arguments de cette
fonction sont les vecteurs de variables indépendantes et dépendantes, comme dans
l'exemple suivant:
x = [0:0.01:2*pi]
>> plot(x, cos(x), x, sin(x))