0% ont trouvé ce document utile (0 vote)
340 vues120 pages

Introduction à MATLAB et ses fonctionnalités

Transféré par

imane taa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
340 vues120 pages

Introduction à MATLAB et ses fonctionnalités

Transféré par

imane taa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

université Abdelmalek Essaadi

Faculté des Sciences et Techniques d’Al Hoceima

Initiation à MATLAB
Initiation à MATLAB

1. Définition

MATLAB (MATrix LABoratory) est un environnement (langage) de


programmation interactif pour le calcule scientifique et la visualisation
des données produit par Mathworks.
A l’origine MATLAB était conçu pour faire principalement des calcules
sur les vecteurs et les matrices d’où son nom ‘Matrix Laboratory’, mais
par la suite il a était amélioré et augmenté pour pouvoir traiter beaucoup
plus de domaines.

2
Initiation à MATLAB

1. Définition

Sa richesse : avec MATLAB, il est possible de réaliser des manipulations


mathématiques complexes en écrivant peu d’instructions. Il peut évaluer
des expressions, dessiner des graphiques et exécuter des programmes
classiques. Et surtout, il permet l’utilisation directe de plusieurs milliers
de fonctions prédéfinie.
L’utilisation des boites à outils (toolboxes) : dédiées à des domaines
particuliers du calcul scientifique, comme la résolution d’équations aux
dérivées partielles, l’optimisation, l’analyse de données….

3
Initiation à MATLAB

1. Définition

La simplicité de son langage de programmation : un programme écrit


en MATLAB est plus facile à écrire et à lire comparé au même
programme écrit en C ou en PASCAL.
La gestion des variables : une caractéristique de MATLAB est que les
variables n’ont pas à être déclarées, leur nature se déduisant
automatiquement lors de l’affectation, ce qui libère l’utilisateur de
s’occuper de typage de données et ainsi de lui éviter les problèmes de
transtypage.

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

➢ La fenêtre d’historique de commande (command history) :


permet de répéter les commandes précédentes en double-cliquant sur la commande
concernée dans cette fenêtre. On peut obtenir le même résultat en ligne de commande
par l’appui répétitif sur la touche « fléche haut » du pavé numérique.

8
Initiation à MATLAB

2. L’environnement MATLAB

➢ La fenêtre d’espace de travail (Workspace) :


Cette fenêtre permet de visualiser les différentes variables existantes, en affichant leur
nom, leur contenu (ou leur dimension) ainsi que le min et le max des données qu’elle
contient. On peut obtenir la liste des variables ainsi que leurs dimensions en ligne de
commande en tapant la commande « whos ».

9
Initiation à MATLAB

2. L’environnement MATLAB

➢ La fenêtre de répertoire courant (Current folder) :


Cette fenêtre permet de visualiser le répertoire de travail dans
lequel vous êtes. C’est ici que sont chargés/enregistrés les
scripts, les modèles ou les données.

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

➢ Matlab gère les nombres entiers, réels, complexes, les chaînes de


caractères ainsi que les tableaux de nombres
➢ Il n'est pas utile de déclarer le type de la variable que l'on manipule, y
compris les tableaux.
➢ Toutes les variables utilisées restent présentes en mémoire et peuvent être
rappelées.
➢ Les noms des variable ne doivent pas commencer par un chiffre mais
plutôt par une lettre, par exemple on ne peut pas utiliser 1var mais plutôt
var_1. Ainsi les instructions suivantes, déclarent les variables lors de leur
affectation :
14
Initiation à MATLAB

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

• Il est possible d’écrire plusieurs expressions dans la même ligne en les


faisant séparées par des virgules ou des points virgules. Par exemple :

>> 8+1, 2*6-1, 10-4 >> 5+6; 2*5, 12-6;


ans = ans =
10
9
ans =
11
ans =
6

18
Initiation à MATLAB

4. Les nombres en MATLAB

• MATLAB utilise une notation décimale conventionnelle, avec un point


décimal facultatif ‘.’ et le signe ‘+’ ou ‘–‘ pour les nombres signés, la
notation scientifique utilise la lettre ‘e’ pour spécifier le facteur d’échelle
en puissance de 10. Les nombres complexes utilise les caractères ‘i’ et ‘j’
pour designer la partie imaginaire.

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

4. Les nombres en 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

4. Les nombres en MATLAB

format long : Pour afficher davantage de chiffres (14 chiffres après la


virgule).
format short : Pour retourner à l’affichage par défaut.
format bank : Pour afficher uniquement 02 chiffres après la virgule.
format rat : Pour afficher les nombres sous forme d’une ration.
format short e :Format court à 5 chiffres avec notation en virgule
flottante.
format long e: Format long à 15 chiffres avec notation en virgule
flottante.
21
Initiation à MATLAB

4. Les nombres en MATLAB


Exemples: >> format long e
>> pi >> pi
ans = ans =
3.1416 3.141592653589793e+000
>> format long >>format rat
>> pi >> pi
ans = ans =
3.14159265358979 355/113
>> format short e >> format bank
>> pi >> pi
ans= ans =
3.1416e+000 3.14
22
Initiation à MATLAB

5. Les nombres complexes


i,j % Les deux variables qui représente le nombre complexe i² = -1.
>> c1 = 1-2i
c1 = 1.0000 - 2.0000i
>>c2 = 3*(2-sqrt(-1)*3)
c2 = 6.0000 - 9.0000i
Les fonctions lies aux nombres complexes
➢ real(c1) % la partie réelle du nombre complexe c1
➢ imag(c1) % la partie imaginaire du nombre complexe c1
➢ abs(c1) % le module du nombre complexe c1
➢ conj(c1) % calcule le conjugué du nombre complexe c1.
➢ isreal(c1) % retourne 1 si le nombre c1 est réel 0 sinon.
23
Initiation à MATLAB

6. Quelques fonctions mathématiques


Il existe un nombre important de fonctions prédéfinies. Si vous allez dans
« Help/Function browser (Maj + F1» vous allez voir apparaitre une liste de fonctions
organisées par type. Si vous sélectionnez une fonction particulièrement, vous allez
avoir une aide sur l’utilisation de cette fonction .
Dans cet exemple nous avons choisi la fonction sinus dont l’argument doit être rentré
en radian.
>> sin(pi)

ans =

1.2246e-016

24
Initiation à MATLAB

6. Quelques fonctions mathématiques

sin sinus atanh arc tangent hyperbolique


cos cosinus exp exponentiel
tan tangente log logarithm népérien
sinh sinus hyperbolique log10 logarithme décimal
cosh cosines hyperbolique sqrt racine carrée
tanh tangent hyperbolique rem renvoie le reste de la division
asin arc sinus sign renvoie le signe d’un nombre
acos arc cosine clock affiche l’année, le mois, le jour,
atan arc tangente l’heure, les minutes et les
asinh arc sinus hyperbolique secondes
acosh arc cosines hyperbolique date affiche le jour, le mois et l’année

25
Initiation à MATLAB

6. Quelques fonctions mathématiques


Finverse Inverse d'une fonction
Solve Résolution symbolique des équations algébriques
Det Calculer déterminant de la matrice symbolique
Diag Créer diagonales ou d'un extrait des matrices symboliques
Eig Calculer les valeurs propres et vecteurs propres symbolique
Expm Calculer exponentielle matrice symbolique
Inv Calculer l’inverse symbolique de la matrice
Rang Calculer le rang de la matrice symbolique
find(A>0.5) Renvoie les indices des composantes de A >0.5
find(A) Renvoie les indices des composantes de A différentes de 0
find(A==0.2) Renvoie les indices des composantes de A égales à 0.2 26
Initiation à MATLAB

7. Entrées-sorties

Deux commandes utiles pour gérer le workspace,

>> save % écrit toutes les variables du workspace dans le fichier [Link]
>>load % charge dans le workspace toutes les variables du fichier [Link]

>> N = input( 'Nombre de boucles désirées ') % entrée interactive


Nombre de boucles désirées
>>disp(N) % affiche la valeur de N

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

par l’instruction K = [ A B ; C D].

>> A = [35 1 6; 3 32 7; 31 9 2]; K=


>> B = [26 19; 21 23; 22 27]; 35 1 6 26 19
>> C = [ 8 28 33; 30 5 34]; 3 32 7 21 23
>> D = [17 10; 12 14];
31 9 2 22 27
>> K= [ A B C D]
8 28 33 17 10
30 5 34 12 14
33
Initiation à MATLAB

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

d) Opérations entre matrices


➢ Multiplications
rappelons la définition de m1 et m2
m2 = 1 2 3
m1 = 1 2 3
456 11 12 13
789
>> m1 * m2’
ans = 14 74
32 182
50 290
>> m1 * m2
??? Error using ==> * (Inner matrix dimensions must agree. )
36
Initiation à MATLAB

9. Matrices

Multiplication élément par élément:


>> m2 .*m3 % (m2 et m3 ont les mêmes dimensions)
ans = 1.0000 4.0000 9.0000
11.0000 37.9473 130.0000
➢ Divisions
>> m2/m3 % division matricielle à droite
ans = 1.0000 -0.0000
9.5406 -1.5960
>> m2\m3 % division matricielle à gauche
ans = -0.5000 -0.8257 -0.4500
0 0 0
0.5000 0.9419 1.1500
37
Initiation à MATLAB

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

>> zeros(2,5) >> diag([1 : 4])


ans = 0 0 0 0 0 ans = 1 0 0 0
00000 0200
>> eye(3) 0030
ans = 1 0 0 0 0004
0100
0010 >> rand(1,4) % nombres aléatoires entre 0 et 1
>>eye(2,4) ans = 0.5469 0.9575 0.9649 0.1576
ans =1 0 0 0
010 0 >>rand(2,5) % matrice aléatoire
>> ones(3) ans =0.8147 0.1270 0.6324 0.2785 0.9575
ans = 1 1 1 0.9058 0.9134 0.0975 0.5469 0.9649
111
39
111
Initiation à MATLAB

9. Matrices

f) Caractéristiques des matrices


>> size(m3) % dimensions
ans = 2 3
>> length(m3) % equivalent à max(size(m3)) : dimension maximum
ans = 3
>> rank (m3) %rang (calcule le rang de la matrice entré en input (i.e. le
nombre de colonnes ou lignes linéairement indépendantes)
ans = 1

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

10. Aide en ligne


Pour obtenir de l’aide sur un sujet, une instruction ou une fonction, on tape help
suivi par l’instruction ou la fonction désirée (en minuscule )
» help log10
LOG10 Common (base 10) logarithm.
LOG10(X) is the base 10 logarithm of the elements of X
On peut aussi faire appel à la documentation MATLAB pour des fonctions, par la
commande : doc fonction
>> doc exp
exp
Exponential
Syntax
Y = exp(X)
44
Initiation à MATLAB

10. Aide en ligne

L'exemple suivant de la commande lookfor a pour but de lister l'ensemble


des commandes et fonctions MATLAB contenant un mot-clé.
>> lookfor neural
neuralnet - Create a Neural Network nonlinearity estimator object.
network - Create a custom neural network.
isnntbinstalled - Check if Neural Network Toolbox is installed.
..
Pour accédez aux démonstrations d’un produits ou un thème donné de
MATLAB via le navigateur d'aide on utilise la fonction DEMO
>> demo matlab graphics

45
Initiation à MATLAB

11. Méthode de travail

Les fichiers de commandes


Dans le cas où les opérations sont nombreuses et sophistiquées, il sera
nécessaire d’écrire les opérations dans un fichier de commandes d'extension
.m.
L'exécution de la suite de commandes écrites dans le fichier .m se fera alors
simplement en tapant son nom dans la fenêtre de commandes.

46
Initiation à MATLAB

11. Méthode de travail


Les fichiers de fonctions
De nouvelles fonctions peuvent être créées et ajoutées à Matlab par l'utilisateur.
Il suffit pour cela d'écrire un fichier .m dont le nom est obligatoirement le nom
de la fonction utilisée par la suite. Son entête doit avoir le format suivant :
function [arguments de sortie] = nom_de_fonction (arguments d'entrée)
Exemple:
function [m] = moyenne(x)
m = sum(x)/length(x) ;
La fonction est enregistrée sous le nom moyenne.m. Elle est ensuite appelée
depuis le fenêtre de commande :
>> x = 1 : 5
>> y = moyenne(x)
y= 3 47
Initiation à MATLAB

11. Méthode de travail

Les variables internes à la fonction sont locales, contrairement à celles d'un


chier de commandes qui sont globales.

Sauvegarde et lecture de données


❖Les variables définies dans l'espace de travail peuvent être sauvées dans un
chier ascii par la commande :
save chemin\nom_de_fichier.dat nom_de_variable

❖ 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

Il suffit de spécifier autant de couples (abscisses, ordonnées) qu'il y a de courbes à


tracer.
Par exemple pour superposer sin et cos :
>> plot(x, cos(x),x, sin(x))
Ou bien utiliser :
figure(1);
Plot (x, cos(x));
hold on
plot(x, sin(x)) ,’g‘)
hold off

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

➢ plot(x, y, t, z) : Donne la courbe y(x) et z(t) sur le même graphe.


➢ steam(n,y): Trace la courbe du signal numérique y en fonction du pas
d’échantillonnage n.
➢ loglog(x,y): Graphe logarithmique en x et y .
➢ semilogx(x,y): Graphe logarithmique en x et linéaire en y.
➢ semilogy(x,y): Graphe logarithmique en y et linéaire en x.

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

d) Décoration des graphiques


En mode de commande, on peut paramétrer les propriétés d'un graphique :
Pour mettre un label sur l'axe des x : xlabel('texte à afficher’)
Pour mettre un label sur l'axe des y : ylabel('texte à afficher’)
Pour mettre un titre à la figure : title('texte à afficher’)
Pour rajouter un quadrillage : grid on
Pour afficher une légende : legend('courbe 1','courbe 2'…)

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

e) Afficher plusieurs graphiques (subplot)


➢ L'idée générale est de découper la fenêtre graphique en pavés de même taille, et
d'afficher un graphe dans chaque pavé.

➢ On utilise l'instruction subplot en lui spécifiant le nombre de pavés sur la hauteur,


le nombre de pavés sur la largeur, et le numéro du pavé dans lequel on va tracer :
subplot (Nbre pavés sur hauteur Nbre pavés sur largeur Numéro pavé),

➢ 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

solid line - Rouge r Plus + Diamant d


dashed line -- Vert g cercle o Etoile P
dotted line : Bleu b Astérisque * Croix X

dash-dot line -. Noir k Point . Triangle ^, >, <, v


Etoile h Carré s 61
Initiation à MATLAB

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).

PropertyName Description PropertyValue


LineWidth épaisseur de la ligne scalair (defaut = 0.
Markersize taille du marqueur scalair (defaut = 10)
MarkerEdgeColor couleur de la bordure du r, g, b,…
marqueur
MarkerFaceColor couleur du marqueur r, g, b…

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

SouthEast en bas à gauche 64


Initiation à MATLAB

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)

Des valeurs numériques peuvent être introduites en les transformant au format


« string » en utilisant la commande num2str(x).
67
Initiation à MATLAB

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

➢ On évalue la fonction z et on stocke les données dans la variable Z.


>>Z = sin(X.^2+Y.^2)./(X.^2+Y.^2);
➢ On dessine la surface représentative de la fonction.
>> mesh(X,Y,Z)
➢ Nous pouvons rajouter un titre pour le tracé (title), des légendes pour les
axes,
>> xlabel('angle x = -pi : pi')
>> ylabel('angle y = -pi : pi')
>> title('sin (x^2+y^2)/(x^2+y^2)')

70
Initiation à MATLAB

12. Graphique 3D

71
Initiation à MATLAB

12. Graphique 3D

Type Description Commande


Plot3 Graphique type ligne en 3D plot3(x,y,z,’style’)
Mesh Graphique type mailles en mesh(x,y,z)
3D
Surf Graphique type surface en surf(x,y,z)
3D
Fill3 Graphique type polygone 3D fill3(x,y,z,ColorSpec)

72
Initiation à MATLAB

13. Création, fermeture des figures

➢ Pour créer une nouvelle figure :


>> figure ou figure(num_de_figure)
➢ Pour fermer une figure :
>>close : efface la figure courante
>>close(num_de_figure) : ferme la figure de num_de_figure
>>close all : ferme toutes les fenêtres ouvertes

73
Initiation à MATLAB

14. Enregistrement des figures


➢ Pour enregistrer une figure, il existe deux possibilités:
1. Mode interactif :
Aller dans la fenêtre associée à la figure et cliquer sur >fichier>save as puis rentrer le
type de format de sortie de la figure:
➢ Format graphique simple (bmp, jpg, tiff…)
➢ Format matlab (.fig) qui permettra de retravailler la figure si besoin
2. Mode commande :
Rester dans la fenêtre d'éditeur de commande et taper
>> saveas(gcf, 'nom_du_fichier’, 'type_de_fichier_de_sortie’).

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

➢ Certaines commandes spéciales ne peuvent s'utiliser qu'en relation a une fonction :


nargin, donne le nombre d'arguments d'entrée passes à l'appel de la fonction.
Exemple
function c = testarg1(a,b)
if (nargin == 1)
c = 2*a;
elseif (nargin == 2)
c = a + b;
End
>>c= testarg1(1) >>c= testarg1(1,3)
>>c=2 >>c=4

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

Il s’agit d’opérateurs « binaires », lesquels retournent la valeur 0 (= false) quand la


relation est fausse et 1 (= true) quand la relation est vraie.
Exemples >> x = 5;
>> x = 5; >> x == 5
>> 3 > x ans = 1
ans = 0 80
Programmation sous Matlab

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

3. Instructions de contrôle : les conditions


➢ Les instructions de contrôle permettent de gérer le flux d’exécution d’un
programme, en fonction de certaines conditions.
➢ Pour les instructions de conditions, une expression conditionnelle est déclarée :
si l’expression est vraie, le groupe de commandes qui suit la condition est exécutée,
sinon cette séquence de commande est ignorée.

3.1 Les structures en if (condition logique):


if condition
instructions
else
instructions
end

83
Programmation sous Matlab

3. Instructions de contrôle : les conditions


La structure if – end La structure if – else - end

84
Programmation sous Matlab

3. Instructions de contrôle : les conditions


La structure if – elseif – else - end
if x > 0
disp('x est positif')
elseif x == 0
disp('x est égal à zero')
else
disp('x est négatif')
end

Le nombre de conditions elseif n’est pas


limité, n'a pas besoin d'un END
85
Programmation sous Matlab

3. Instructions de contrôle : les conditions


3.2. La structure en switch – case (jonction conditionnelle) :
➢ La structure switch – case permet de choisir un groupe de commandes
d’exécution parmi d’autres.
➢ Le choix se fait par correspondance de la variable aux différents cas.
➢ Si aucune correspondance n’existe et que l’expression otherwise existe, le groupe
de commande entre otherwise et end est exécuté. Sinon aucun groupe de
commandes n’est exécuté.
➢ Il est possible de regrouper plusieurs « cas » si la séquence d’instructions à
exécuter est la même pour ces différents cas. La syntaxe est alors :
Case{ cst1,…,cstN}
86
Programmation sous Matlab
3.2. La structure en switch – case:
Syntaxe:
Switch expression : une
variable assignée (scalaire,..) switch var
Si variable = value case 1 case cst1,
exécution du groupe de commande 1 séquence d’instructions 1
case cst2,
Si variable = value case 2 séquence d’instructions 2
exécution du groupe de commande 2 ...
case {cst4, cstN}
Si variable = value case x séquence d’instructions N
exécution du groupe de commande x otherwise séquence
d’instructions par défaut
(optionnel) end
exécution du groupe de commande x
87
Programmation sous Matlab
3.2. La structure en switch – case:

Exemples:

switch x Q1 = input('avez-vous soif ? oui/non ','s');


case 1 switch Q1;
disp('x = 1’) case 'oui’
case {2,3,4} disp('alors buvez!’)
disp('x = 2, 3 ou 4’) case 'non’
otherwise disp('c''est pas grave’)
disp('x ~= 1, 2, 3 ou 4') otherwise
end disp('répondez par oui/non')
end

88
Programmation sous Matlab

4. Instructions de contrôle : les boucles


➢ Une boucle permet de répéter l’exécution d’une commande/groupe de commandes
plusieurs fois consécutivement. Matlab possède deux types de boucle :
4.1 La structure infinie while – end:
Boucle dépendante d’une condition logique. Le nombre de passage est défini par la
condition. La boucle est effectuée jusqu’à ce que la condition soit fausse:
while condition
instructions
end Exemple:
x = 15; n = 0; n = 1;
while 2^n < x while n<=10
n = n+1; y(n) = 1+n-2*n^2+0.1*n^3
end n = n+1
n=4 end 89
Programmation sous Matlab

4. Instructions de contrôle : les boucles


4.2 La structure for - end

Boucle avec un nombre prédéfini de passage :


for i = start : incr : stop L’exemple suivant permet d’éditer une
instructions table de multiplication, on observe que
end la talle du tableau T augmente d’une
itération à une autre.
Exemple:
n = 4; t = 1:n; T = []; T =
for k = 1 : 1 : 10 for i = 1:n 1 2 3 4
x = k^2 T = [T;t*i] 2 4 6 8
end end 3 6 9 12
T 4 8 12 16
90
Programmation sous Matlab

4. Instructions de contrôle : les boucles


Dans certaines situations, le même résultat peut être obtenu en utilisant soit la
structure en boucle for – end, soit l’opération matricielle élément par élément,
Exemple:

x = [2 4 6 8 10]; z1' z2'


y = [3 6 9 12 15];
ans = ans =
% Matrix calculation (coefficient by coefficient)
z1 = (y./x).^2 + (x + y).^((y - x)./x) 4.4861 4.4861
5.4123 5.4123
% Using the for - end structure 6.1230 6.1230
6.7221 6.7221
for n = 1:length(x)
7.2500 7.2500
z2(n) = (y(n)/ x(n))^2 + (x(n) + y(n))^(( y(n) - x(n))/ x(n))
end
91
Programmation sous Matlab

Exemple:
Nous pouvons aussi remplir
directement la matrice directement à
chaque pas de la boucle.

clear all, close all, format long, clc a=0 ;


x = [1 0 0 1 1 1 2 3 4 6]; for k= 1 : length(x)
Z = [5 9 9 0 3 8 5 4 3 2]; a= a+[z(k) x(k);x(k)*z(k) x(k)^2];
% Initialisation des variables end
a11=0; a12=0; a21=0; a22=0;
for k= 1 : length(x) MATLAB redimensionne les
a11 = a11+Z(k);
variables, la matrice a est initialisée à
a12 = a12+x(k);
a21 = a21+x(k)*Z(k); 0 comme une variable scalaire mais
a22 = a22+x(k)^2; elle est remplie comme une matrice
end 2D à l’intérieur de la boucle.
a=det([a11 a12; a21 a22]) 92
Programmation sous Matlab

5. Boucles et conditions encapsulées:


Les conditions et boucles peuvent être encapsulées. C’est-à-dire qu’une boucle et/ou
une condition peut se situer à l’intérieur d’une autre boucle et/ou une condition
(aucune limite de nombre).
for i = 1:n
for j = 1:m
end
end
chaque fois que i augmente de 1
(boucle), la boucle encapsulée (j) est
exécutée m fois.
Les commandes à l’intérieur des 2
boucles auront été exécutées n x m fois
93
Programmation sous Matlab

5. Boucles et conditions encapsulées:


Exemples:
➢ Création d’une matrice de ➢ Création d’une matrice nulle de
dimension m x n: dimension m x n avec diagonale = 1
m = input('nbre de lignes?'); for k=1:m
n = input('nbre de colonnes?'); for c=1:n
A = zeros(m,n); A(k,c) = 0;
for l=1:m if k==c
for c=1:n A(k,c) = 1
A(l,c) = l+c; end
end end
end end
disp(A) 94
Programmation sous Matlab

6. Instructions de rupture de séquence

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

7. Débogage des fichiers

➢ 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

>> dbtype ChebT


1 function T = ChebT(n)
2 % Coefficients T du nième polynôme de Chebyshev du premier type.
3 % Ils sont stockés dans l'ordre décroissant des puissances.
4 t0 = 1;
5 t1 = [1 0]
6 if n == 0
7 T = t0;
8 elseif n == 1;
9 T = t1;
10 else
11 for k=2:n
12 T = [2*t1 0] - [0 0 t0];
13 t0 = t1; t1 = T;
14 end
15 end
>> dbstop at 10 in chebt 97
Programmation sous Matlab

7. Débogage des fichiers


On remarque le point d’arrêt à la ligne 10.
L'exécution de la fonction ChebT s'interrompt à la rencontre de ce point d’arrêt.

98
Programmation sous Matlab

7. Débogage des fichiers

>> 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

7. Débogage des fichiers


➢ Nous pouvons consulter la liste des variables locales à la fonction, définies avant
la ligne 11.
K>> who
Your variables are:
n t0 t1

➢ Les variables peuvent être consultées et modifiées.


K>> t1
t1 =
1 0

➢ 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

7. Débogage des fichiers


➢ Pour remonter de l’espace de travail de la fonction à celui de MATLAB, on utilise
la commande dbup.
➢ Pour redescendre à l’espace de travail de la fonction, on utilise dbdown.
➢ Pour continuer l'exécution de la fonction jusqu'à la fin de celle-ci ou jusqu'au
prochain point d'arrêt, on utilisera la commande dbcont.
K>> dbcont
ans = 16 0 -20 0 5 0

➢ 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.

➢ Un tableau à 3 dimensions est formé Page 4 8 0


6 0 5
de « pages », elles-mêmes constituées 1 5 4
de matrices (tableaux à 2 dimensions), Colonne
3 2 5
avec le même nombre de lignes et de Ligne
8 6 8
colonnes. 0 7 7
1 2 3
4 5 6
7 8 9
102
Programmation sous Matlab

7. Tableaux multidimensionnels

2. Génération d’un tableau multidimensionnel


➢ Pour définir ce tableau, nous utilisons la commande cat qui réalise la concaténation
des pages selon la dimension 3.

>> page1=[8 7 4;6 2 9;7 3 5;1 6 3] ; tableau1(:,:,2) =6 3 7


>> page2=[6 3 7;4 5 3; 1 4 2;14 8 7]; 4 5 3
1 4 2
>> page3=[4 5 7;8 9 10;6 3 2;8 6 5];
3,14 8 7
>> tableau1=cat(3, page1,page2,page3) tableau1(:,:,3) =4 5 7
tableau1(:,:,1) = 8 7 4 8 9 10
629 632
735 865
163
103
Programmation sous Matlab

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

➢ Un tableau à 4 dimensions est un tableau de tableaux.


➢ Les éléments de la 4ème dimension de tableau4 sont formés de tableau1 et
d’un tableau de mêmes dimensions que tableau1.

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

➢ Nous pouvons aussi utiliser la commande cat en précisant la concaténation selon


une autre dimension comme la 4ème dimension, par exemple.

>> tableau4=cat(4, tableau1, randn(size(tableau1))) ;


105
Programmation sous Matlab

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);

➢ La commande ndims donne le nombre de dimensions qui est 4 pour tableau4 et


de dimension 3 pour le tableau1

>> 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

➢ Prenons l’exemple d’un banc de mesures dans l’industrie de l’automobile où l’on a


souvent besoin de mesurer nombre de signaux issus de capteurs (température,
pression, humidité, débit de fluide, etc.)
➢ Supposons qu’on fasse ces mêmes mesures pour plusieurs paramètres de
l’environnement (ex. vitesse du moteur).
➢ Pour chaque vitesse du moteur, les mesures sont enregistrées dans une autre page du
tableau.
➢ Chaque colonne représente la valeur d’un capteur pour tous les instants de l’essai.

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

8. Tableaux multidimensionnels de cellules


1. Cellules, Tableaux de cellules:
➢ Les cellules sont des tableaux pouvant contenir des éléments de différents types de
données : des chaînes de caractères, des nombres, des tableaux, etc.
2. Construction de cellules :
➢ Les éléments d’une cellule doivent être mis entre accolades « { } ». La cellule ci-
dessus doit être écrite de façon suivante :
>> Cell1={['Paris ';'Saint Nom';'Clichy '] [3 5;7 8] [3j 1+5i;3+6i 2+3i ;5+j j]}
Cell1 = [3x9 char] [2x2 double] [3x2 double]
➢ Nous remarquons que Cell1 est constituée d’un tableau d’une ligne et 3 colonnes.
❑ Le premier élément est du type chaîne de caractères (3 lignes de 9 colonnes ou
caractères)
❑ Le deuxième est de type réel (matrice carrée 2x2)
❑ Le troisième est un tableau de type double de 3 lignes et 2 colonnes 112
Programmation sous Matlab

8. Tableaux multidimensionnels de cellules

➢ 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.

>> x{1,1}=1 >> x{2,3}='MATLAB R2009a'


x = [1] [ ] [ ] x = [1] [ ] [ ]
[][][] [] [ ] 'MATLAB R2009a'
113
Programmation sous Matlab

8. Tableaux multidimensionnels de cellules


[Link]ès aux éléments des cellules, indexation:
➢ Pour accéder à un élément d’une cellule, on l’indexe en utilisant les accolades {}:
➢ Pour avoir tous les éléments de la cellule,
>> Cell1{1} >> Cell1{1:2}
on met l’opérateur « : » entre les accolades ans = Paris ans = Paris
{}, comme pour les tableaux de réels. Saint Nom Saint Nom
Clichy Clichy
>> Cell1{:}
ans =3 5
ans = Paris
78
Saint Nom
Clichy
ans = 3 5
78
ans = 0 + 3.0000i 1.0000 + 5.0000i
3.0000 + 6.0000i 2.0000 + 3.0000i
5.0000 + 1.0000i 0 + 1.0000i 114
Programmation sous Matlab

8. Tableaux multidimensionnels de cellules

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]

➢ On veux afficher la 2 -ème cellule :


>> Cell3{2}
ans = 2 Sources chaudes
Saint Nom
Saint Lazare
115
Programmation sous Matlab

8. Tableaux multidimensionnels de cellules

>> Cell4={'Thermodynamique à échelle finie' 8667}


Cell4 =
[1x30 char] [8667]
➢ Concaténation des cellules (Cell5 est constituée de 2 cellules).
>> Cell5={Cell3 Cell4}
Cell5 =
{1x2 cell} {1x2 cell}

➢ 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

8. Tableaux multidimensionnels de cellules


➢ On peut aussi concaténer les éléments de ces deux cellules pour en faire les éléments
d’une seule. Pour ça, on utilise les crochets « [ ] » au lieu des accolades « { } ».
>> Cell6=[Cell3 Cell4]
Cell6 =
[2x2 double] [3x17 char] [1x31 char] [8667]
>> Cell6{:}
➢ On obtient bien une seule cellule. ans =1 3
5 9
ans = 2 Sources chaudes
Saint Nom
Saint Lazare
ans = Thermodynamique à échelle finie
ans = 8667 117
Traitement des données sous Matlab
1. Visualisation

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))

➢ Graphique d'une fonction


La commande fplot permet de tracer le graphique d'une fonction sur un intervalle donné.
La syntaxe est:
fplot('nomf', [xmin, xmax])
Où: - nomf est le nom de la fonction. - [xmin, xmax] est l'intervalle pour lequel est tracé
le graphe de la fonction.
119
Traitement des données sous Matlab
1. Visualisation
➢ Exemple 1
Le graphe de la fonction sinus entre -2π et 2π
fplot('sin', [-2*pi 2*pi])
➢ Exemple 2
Le graphe de la fonction: h(x) = x sin(x), entre -2π et 2 π.
On peut définir la fonction h dans un fichier h.m
function y=h(x)
y=x.*sin(x);
On obtient alors le graphe de la fonction h par l'instruction:
fplot('h', [-2*pi 2*pi])
➢ Exemple 3
Une autre façon pour tracer le graphe de x sin(x)
fplot('x*sin(x)', [-2*pi 2*pi])
Dans le 3eme exemple on a le choix entre l'écriture de x.*sin(x) ou x*sin(x) 120

Vous aimerez peut-être aussi