Vous êtes sur la page 1sur 79

Introduction à Matlab

1ère année Cycle Préparatoire

Préparé par: Yessari Madiha Année Universitaire: 2014-2015


Plan
Introduction à Matlab
Interface Matlab
Les variables dans Matlab
Les vecteurs
Les matrices
Les opérations sur les vecteurs/ les matrices
Graphes et dessin
Les boucles et les instructions conditionnées
Introduction

Qu’est-ce que Matlab ?


Le logiciel Matlab constitue un système interactif et convivial de calcul
numérique et de visualisation graphique.

Un outil très utilisé, dans les universités comme dans le monde industriel, qui
intègre des centaines de fonctions mathématiques et d’analyse numérique (calcul
matriciel —le MAT de Matlab—, traitement de signal, traitement d’images,
visualisations graphiques, etc.).

3
Introduction
Démarrer et quitter Matlab
Pour lancer Matlab, tapez
>> matlab dans votre console Linux (ou cliquez simplement sur l’icône dans un
environnement Windows).
Pour quitter, tapez
>> quit ou >> exit
Matlab fonctionne à l’aide de commandes qu’il faut apprendre à utiliser. Vous pouvez à
n’importe quel moment taper
>> help
pour savoir comment on utilise telle ou telle commande (par exemple essayez help
exit).
Le module d’aide est aussi assez efficace ; on peut par exemple une recherche de mots
clefs en tapant
>> lookfor sinus
on trouvera que la commande sin correspond, à la fonction sinus.
Interface Matlab

Workspace

Command Window

Command History

5
Interface matlab

Command window « fenêtre de commande »: Les


commandes MATLAB sont entrées ici.
Workspace « Espace de travail »: Affiche toutes les
variables créées (matrices, vecteurs, scalaires, etc.)
Command History « Historique des commandes » :
Répertorie toutes les commandes entrées précédemment.

6
Création fichier de commandes
Dans un premier temps, on peut se contenter d’introduire ses commandes une à une au
niveau de l’espace de travail où elles sont interprétées directement. Cependant, par la
suite, il est beaucoup plus pratique d’écrire sa séquence de commandes complète au
moyen d’un éditeur, puis de sauver le tout dans un fichier avec l’extension .m.
Cette séquence pourra alors être exécutée dans MATLAB par simple introduction du
nom du fichier.
Les variables dans Matlab
Dans un premiers temps, Matlab peut bien sûr s’utiliser comme une calculette.

Exemples:
>> 1+2 donnera 3,
>> 4ˆ2 retourne 16
>> (((1+2)ˆ3)*4)/2 donne bien 54.
Il est aussi possible, comme dans tout langage de programmation, de définir des variables
pour stocker un résultat:
>> a=1+2
>> b=2+3
>> a+b retourne bien 8.

Les calculs avec les variables complexes sont parfaitement possibles, en utilisant i ou j
(avec bien évidement i² = j²= −1) :
>> a=1+2i ;
>> b=2+3i ;
>> a*b donne la réponse attendue, ans = -4 + 7i.
Exemples sur Matlab
Exemples sur Matlab
Exemples sur Matlab
Les variables dans Matlab
Il est utile de savoir quelles sont les variables que nous avons utilisées depuis le début
de la session, et pour cela il suffit d’écrire:
>> who
Pour en savoir plus sur elles:
>> whos
Enfin, pour les détruire, on utilise:
>> clear a
Pour toutes les variables:
>> clear all
Certaines variables très utiles sont déjà définies, comme :
>> pi ou >> ans qui retourne la dernière réponse donnée par Matlab.
Il est aussi utile de savoir que taper sur ↑ peut rappeler les commandes précédentes (la
flèche ↓ permet de revenir) et taper la première lettre et appuyer sur la flèche vers le
haut permet de faire apparaître une commande déjà utilisée.
Les variables dans Matlab
• Les noms de variables peuvent contenir jusqu'à 63 caractères

• Les noms de variables doivent commencer par une lettre et peuvent être
suivis par lettres, chiffres et caractères de soulignement.

Exemples:
>> X = 2;
>> Abc_123 = 0,005;
>> 1ab = 2;
Error: Unexpected MATLAB expression.
L’opérateur colon « : »
En Matlab, quand on écrit “1 :10” par exemple, cela signifie “tous les nombres de 1
a 10” (c.à.d. 1 2 3 4 5 6 7 8 9 10),
et “1 :2:10” signifie “tous les nombres de 1 a 10 avec un pas de 2 (et donc les
nombres : 1 3 5 7 9)”, le pas étant unitaire par défaut.
Les vecteurs
Pour définir un vecteur v, par exemple v = (11 22 33 44 55), on utilise:
>> v=[11 22 33 44 55]
La commande >> v’ donne ensuite la transposée de ce vecteur, c’est-`a-dire ici un
vecteur colonne.
On peut aussi écrire:
>> z=[11 ; 22 ; 33 ; 44 ; 55 ;] pour obtenir directement un vecteur colonne z, mais il
est bien plus simple d’écrire:
>> z=v’ ou encore >> z=[11 22 33 44 55]’
Les vecteurs
Pour obtenir:

Il est aussi possible d’utiliser ces notations avec notre opérateur “ :” pour définir un
nouveau vecteur. Par exemple si l’on écrit [1 :1 :5], on définit un vecteur allant de 1 à 5
avec une incrémentation unité.
>> w=[1 :1 :5] ou encore >> w=[1 :5] nous permettent de définir le vecteur w = (1 2 3 4
5) Les mêmes opérations sont bien sûr possibles sur les vecteurs colonnes.

Exemple :
>> vec=[1 :2 :10]’ définit le vecteur:
Les vecteurs
Les vecteurs
Pour accéder a une valeur particulière d’un vecteur, on écrira :
>> v(2) qui donne simplement accès au 2ème élément, c.-`a.-d. ici la valeur 22.

Il est aussi possible d’utiliser les “ :” pour sélectionner plusieurs éléments d’un vecteur

Exemples :
>> v(1 :3) donne accès aux éléments qui vont de 1 à 3 (avec un pas de 1 sans plus de
précision, donc les éléments 1, 2 et 3).
Cette commande retourne le vecteur (11 22 33).
On peut aussi écrire:
>> v(1 :2 :5) qui donne accès aux éléments qui vont de 1 à 5, mais en incrémentant
avec un pas de 2.
Le vecteur (11 33 55) est retourné.
Si l’on écrit:
>> v tout le vecteur est retourné, mais l’on obtient le même résultat par:
>> v( :) le symbole “ :” sans autres précisions signifiant “tout le vecteur”.
Les vecteurs
Les vecteurs
Matlab permet la multiplication des vecteurs, cependant on surveillera l'ordre de ce
que l'on écrit:

Si on prend le vecteur:

vec= (1 2 3 4 5)
Les matrices

Il suffit en fait d'ajouter une dimension aux vecteurs pour créer des matrices avec les
mêmes notations. Ainsi:
>> A=[1 2 3 ; 2 4 5 ; 6 7 8 ;]
Génère la matrice:

Il est important de bien faire attention à la taille des objets que l'on définit sous peine
d'obtenir des messages d'erreur.
Si l'on veut créer une matrice à partir de ses colonnes, il suffit d‘écrire:
>> A=[[1 2 6]' [2 4 7]' [3 5 8]']
Les matrices
Pour lire les éléments, on utilise les mêmes méthodes que précédemment.

>> A(1,3)
permet d'accéder à l‘élément (1,3) de la matrice A, qui est ici 3.

>> A(1 :3,2 :3)


retourne les lignes 1 à 3 et les colonnes 2 à 3 :

Le même résultat est obtenu par la notation:


>> A(1 :1 :3,2 :1 :3)

On peut accéder à toutes les valeurs d'une matrice par la notation " :" :
A( :,2) pour obtenir la deuxième colonne de A

A( :,3) pour la troisième

A(1, :) retourne toute la première ligne.


Les matrices
Pour transposer une matrice ; en Matlab, on procède comme pour les vecteurs :
>> A'
est bien la transposée de A.
Les matrices
Il existe un certain nombre de commandes qui génèrent automatiquement des
matrices particulières :
1. rand(p) crée une matrice p X p dont les éléments sont aléatoires.
2. eye(p) crée une matrice identité p X p.
3. zeros(p) crée une matrice de zéros p X p.
4. ones(p) crée une matrice de uns p X p.
Les matrices
Il est aussi possible d'utiliser ces commandes pour créer des matrices non carrées:
Les matrices
Il est possible de définir les matrices par blocs. Ainsi, pour créer une matrice:
Opérations matricielles avec les vecteurs et les
matrices
La multiplication de vecteurs et de matrices se fait en utilisant la notation «* »:

>> C=[1 3 4 ; 5 2 1 ; 3 1 2]

>> b=[3 1 2 ]

>> v=[1 3 4 ]

>> v*b‘

>> v'*b

>> A*C

>> C*A

>> A*v'
Opérations matricielles avec les vecteurs et les
matrices
Opérations matricielles avec les vecteurs et les
matrices
Opérations matricielles avec les vecteurs et les
matrices

Pour les matrices carrées, il existe aussi des fonctions spécifiques extrêmement utiles :
1. inv(A) calcule l'inverse de A.
2. det(A) calcule le déterminant de A.
3. diag(A) retourne la diagonale.
Opérations matricielles avec les vecteurs et les
matrices
Matlab permet aussi d'effectuer des inversions de matrices, et donc de résoudre
rapidement des systèmes d‘équations linéaires.
Par exemple, pour résoudre un système du type A *x = b, la solution est donnée par
x = A-1.b.

Cela donne, en Matlab :


>> inv(A)*b
On peut aussi écrire:
>> A\b
ou l'on notera le symbole n qui signifie diviser par la gauche ou plus directement, si l'on
tient à utiliser la division usuelle (la division a droite)
>> eye(3)/A*b
Opérations dans les éléments des
matrices/vecteurs
Si nous voulons travailler directement avec les éléments de matrices/vecteurs, il ne s'agit
plus alors d'une opération matricielle, mais bien d'une multiplication des éléments de
matrices.

Pour spécifier que l'on utilise les éléments et non pas les matrices, on écrit par exemple -
pour la multiplication- « .* » au lieu de «* ».

Ainsi on aura pour la multiplication élément par élément des vecteurs:


>> v.*b
ou
>> b.*v
et de même pour des matrices:
>> A.*C
>> b./v
>> C./A
>> A.^2
Opérations dans les éléments des
matrices/vecteurs

Certaines fonctions, qui ne sont pas destinées directement aux matrices, s'appliquent
directement aux éléments et n'ont donc pas besoin du point :
>> sin(v)
>> log(C)
>> exp(A)
>> 0.5-C

Les fonctions suivantes sont parfois très utiles :


•[m,n]=size(A), retourne m, le nombre de lignes, et n le nombre de colonnes de A.
•min(V) retourne un vecteur qui contient l‘élément le plus petit de chaque colonne
de V (ou le plus petit élément de V si V est un vecteur).
•min(min(V)) retourne l‘élément le plus petit de la matrice V
•max(A) effectue les mêmes opérations pour les maximums.
Comment transformer une matrice MxN en vecteur Px1 ?

Comment obtenir le nombre d'occurrences des valeurs d'une


matrice ?

Comment trouver la valeur minimale (ou maximale) avec sa


position ?

Comment effectuer un tri de valeurs?


Comment transformer une matrice MxN en vecteur Px1 ?

Pour transformer une matrice de dimension MxN en un vecteur de


dimension Px1 (avec P = MxN), il est possible d'utiliser la
fonction reshape 
Il est également possible de se servir des propriétés de l'indexage
linéaire et de l'opérateur colon : comme ceci :
On note que la matrice est redimensionnée colonne par colonne. Si on
souhaite obtenir une réorganisation ligne par ligne, on procédera à une
transposition de la matrice avant.
Comment obtenir le nombre d'occurrences des valeurs d'une
matrice ?
Pour obtenir le nombre d'occurrences de chaque valeur dans un
vecteur, on combine les fonctions unique et histc comme ceci :
Pour une matrice de dimensions quelconques, il suffit juste de faire ceci :
Comment trouver la valeur minimale (ou maximale) avec sa position ?

Dans un vecteur
Afin d'obtenir le minimun/maximum d'un vecteur, il suffit d'utiliser les
fonctions min et max de MATLAB :

Si de plus on souhaite obtenir sa position, il faut demander le deuxième argument de


sortie de ces mêmes fonctions :

Attention : si toutefois il existe plusieurs valeurs égales au


minimum/maximum, seule la position de la première trouvée sera retournée.
On pourra alors utiliser la fonction find pour obtenir les autres positions.
Dans un tableau

Si l'on souhaite obtenir les minimums/maximums d'un tableau dont la


dimension est supérieure à 1, on utilise de même les
fonctions min et max, mais sur le tableau indexé linéairement grâce à
l'opérateur colon (symbole :).

Afin de récupérer les coordonnées (i,j,k…) du tableau, on utilise la


fonction ind2sub sur la position obtenue comme ceci :
Comment effectuer un tri de valeurs?
Dans les deux cas on utilisera la fonction sort. 

Pour un tableau de valeurs, à moins de spécifier l'argument dim, la


fonction sort effectuera par défaut le tri sur la première dimension de taille > 1.
Si l'on souhaite obtenir un tri par valeurs décroissantes, on mettra
l'argument mode à 'descend'.
Tableau de cellules
Un tableau de cellules (cell array) permet de stocker différent type de
variables dans une seule. Il est possible de stocker n'importe quel type
de variables et surtout des variables de n'importe quelles dimensions. 
Par exemple :
•Comment accéder aux valeurs des tableaux de cellules ?

L'indexage s'effectue :
•soit avec () pour récupérer la cellule ;
•soit avec {} pour récupérer la valeur contenue dans la cellule.
•Comment accéder à un élément particulier d'une cellule ?
•Comment concaténer des tableaux de cellules ?

Soient A et B deux tableaux de cellules tels que :

Alors :
ENREGISTRER LES VARIABLES DE L’ESPACE DE TRAVAIL DANS UN FICHIER

Pour enregistrer les variables de l'espace de travail dans un fichier,


on utilise les instructions suivantes:
>> save Enregistrer toutes les variables dans un fichier
matlab.mat. Dans une session ultérieure, taper >> load pour
ramener l'espace de travail enregistré.

Si vous voulez enregistrer dans un fichier de nom choisi:


>>save fichier1.mat x y z A X
Enregistre les variables x, y, z, A, X dans le fichier fichier1.mat.

Dans une session ultérieure, taper >> load fichier1.mat pour


ramener les variables x, y, z, A, X dans l'espace de travail.
CHARGEMENT DE FICHIERS DE DONNEES
1. Si des variables ont été sauvées en format matlab dans le fichier fichier1.mat.
Dans la session actuelle ou dans une session ultérieure, vous pouvez recharger
ces données en tapant:
>> load fichier1.mat (si vous êtes dans les répertoire contenant fichier1.mat)
Les données sont récupérées avec le nom des variables qui avaient été sauvées.

2. Si des données sont sous forme de matrices régulières dans un fichier (ex
exercice1.dat ou file500.txt), vous pouvez charger ces données en tapant:
>> load file500.txt
la matrice de données est alors disponible dans l'espace matlab sous le nom
file500.

3. Si des données sont dans un fichier excel (ex matlab_TD.xls), vous pouvez
charger ces données en tapant:
>> [data,texte]=xlsread(‘matlab_TD.xls')
la matrice de données est alors disponible dans l'espace matlab sous le nom
data. Si il y avait du texte en en-tête des données, il est dans texte.
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.

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 ])
Les vecteurs peuvent être indifféremment ligne ou colonne, pourvu qu'ils soient
tous deux de même type.
Exemple:
Si on veut tracer sin(x) sur l'intervalle [0; 2π], on commence par définir une
série (de taille raisonnable, disons 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, sin(x))
qui fournit le graphe suivant dans la fenêtre graphique :
On remarquera que tout ce que demande plot, c'est un vecteur d'abscisses et un
vecteur d'ordonnées.
Les abscisses peuvent donc être une fonction de x plutôt que x lui-même.
Il est donc possible de tracer des courbes paramétrées :
>> plot(cos(x), sin(x))
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))

Les deux courbes étant en réalité dans des couleurs différentes. Cette méthode
fonctionne même si les abscisses des deux courbes ne sont pas les mêmes.
Exercice:
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, et sin(x) 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 faut utiliser la multiplication terme à terme .* soit :
>> plot(x, x.*sin(x))
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 : >> plot(x,sin(x),':',x,cos(x),'r-.')
Specifier Line Style Specifier Marker Type
- solid line (default) + plus sign
-- dashed line o circle
: dotted line * asterisk
-. dash-dot line . point
x cross
Specifier Color s square
r red d diamond
g green ^ upward pointing triangle
b blue v downward pointing triangle
y yellow > right pointing triangle
k black < left pointing triangle
w white p five-pointed star (pentagram)
h six-pointed star (hexagram)
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')

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

Tracer un quadrillage
C'est l'instruction grid, qui utilisé après une instruction plot affiche un quadrillage
sur la courbe. Si on tape à nouveau grid, le quadrillage disparaît.
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')
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é)

La virgule peut être omise. Les pavés sont numérotés dans le sens de la lecture
d'un texte , de gauche à droite et de haut en bas :
Une fois que l'on a tapé une commande subplot, toutes les commandes
graphiques suivantes seront exécutées dans le pavé spécifié.
Exemple:

>> subplot(221)
>> plot(x,sin(x))
>> subplot(222)
>> plot(x,cos(x),x,sin(x),'-.')
>> subplot(223)
>> plot(cos(x),sin(x))
>> subplot(224)
>> plot(sin(2*x),sin(3*x))
Axes et Zoom

Il y a deux manières de modifier les valeurs extrêmes sur les axes, autrement
dit de faire du zooming sur les courbes. La plus simple est d'utiliser le bouton
de la fenêtre graphique.
Vous pouvez alors :
-encadrer une zone à zoomer avec le bouton de gauche de la souris,

-cliquer sur un point avec le bouton de gauche. Le point cliqué sera le centre
du zoom, ce dernier étant effectué avec un facteur arbitraire

- cliquer sur un point avec le bouton de droite pour dézoomer


Instructions graphiques diverses

Maintien du graphique
Par défaut une instruction plot efface systématiquement le graphique
précédent. Il est parfois utile de le conserver et de venir le surcharger avec
une nouvelle courbe. Pour cela on utilise la commande hold. Pour démarrer le
mode surcharge, taper hold on, pour revenir en mode normal, hold off.

Effacement de la fenêtre graphique

Tapez simplement clf. Cette commande annule également toutes les


commandes subplot et hold passées.
FORMAT DE GRAPHIQUE
On peut aussi choisir le format du graphique:

plot(x,y) Tracer y(x) avec échelles linéaires

plotyy pour deux ordonnées (gauche et droite)

semilogx(f,A) Tracer A(f) avec échelle log(f)

semilogy(w,B) Tracer B(w) avec échelle log(B)

polar(theta,r) Tracer r(theta) en coordonnées polaires

bar(x,y) Tracer y(x) sous forme des barres


MANIPULATION DE GRAPHIQUES
axis([-1 5 -10 10]) Choix des échelles x = (-1,5) et y = (-10,10)

COMMUNICATION AVEC L'USAGER


On peut afficher un message, une valeur à l'écran avec l’instruction disp:
disp('Ceci est un test') Afficher "Ceci est un test" sur l'écran
On peut entrer une valeur avec l’instruction input:
x = input('Valeur de x = ') Afficher sur l'écran "Valeur de x = " et attendre
qu'un nombre soit tapé sur le clavier

Ouverture d'une fenêtre


La fonction figure permet de créer un nouvelle fenêtre pouvant contenir des
graphes.
>>figure(1), plot(y)
>>figure(2), plot(x,y)
Tracer à partir d’un fichier .txt
Nous avons vu comment tracer des fonctions, mais souvent nous voulons
afficher des points écrits dans un fichier.
Pour accéder à ces valeurs, le plus simple est d'utiliser la fonction Matlab
« load ».
Si Il suffira, pour afficher la seconde colonne en fonction de la première,
d‘écrire:

load data.txt ;
x=data( :,1) ;
y=data( :,2) ;
plot(x,y)

La première commande lit le fichier et crée une matrice (avec le même nom)
contenant ces données. On copie ensuite la première colonne dans le vecteur x,
la seconde dans le vecteur y, et l'on affiche finalement le graphe.
Fichiers de commande (”script files”)
Un fichier de script est un fichier externe contenant une suite d'instruction MATLAB.
Les fichiers de script ont une extension de nom de fichier .m.
Les M-files peuvent être des scripts qui exécutent simplement une suite
d'instructions ou peuvent être des fonctions (nous verrons les fonctions plus loin).

Exemple :
créer le script "test script" (soit vous tapez >>edit test_script.m, soit vous faites
'File‘->'New'->'Script' puis 'Save As' en spécifiant "test_script.m" comme nom) avec
la suite d'instructions suivante :
clear all %efface toutes les variables du workspace
a=1
b = 2;
c = 3, d = 4;
e = a*b/(c+d),
scal = 11;
Sauvegardez puis exécutez le script (menu Debug->Save&Run ou Flêche verte ou
F5).
Exemple:
Sauvez dans le répertoire courant les lignes suivantes sous le nom losange.m :
x=[0 -1 0 1 ; -1 0 1 0 ]
y=[-1 0 1 0 ; 0 1 0 -1]
plot(x,y)

La commande losange affichera x, puis y, puis tracera un losange. Si ce fichier


est placé dans un répertoire accessible, la commande losange devient une
commande Matlab comme toutes les autres.
Exercice:
Ecrire un script qui permet d’exécuter la suite des instructions ci-
dessous:
Calculer et tracer le sinus ainsi que le sinus carré de l’angle theta
défini à l’aide de l’instruction linspace.

theta=linspace (-4*pi ,4*pi , 100) ;


sinus_2 = sin(theta ).^2 ;
figure (1),plot(theta , sin (theta) ,theta , sinus_2 ,'-')
m =[sin(theta);sinus_2];
figure (2),plot(theta ,m)
Les boucles
L'utilisation des boucles est le premier pas dans la programmation. En
Matlab, les boucles for et while sont très utilisées pour les processus
itératifs.
La boucle for est associée à une variable, et exécute un processus
plusieurs fois en prenant à chaque fois une nouvelle valeur pour cette
variable.
Exemple :
Rajouter plus 2 à tout le monde
Exercice :
Ecrire un script qui permet de calculer la moyenne sur un vecteur.
 
La commande while fonctionne de façon similaire ; elle exécute en boucle les
commandes tant qu'une certaine condition est satisfaite.
 
 
Exemple :
Exercice :
Ecrire un script qui permet de calculer la moyenne sur un vecteur.
Les instructions conditionnées, enfin, permettent de n'effectuer une opération
que si une certaine condition est satisfaite. La plus simple est if, qui exécute
des commandes seulement si une condition est remplie (mais à la différence
de while, elle n'exécute ces commandes qu'une seule fois).
Forme 1
if <expression booléenne>
<suite d'instructions exécutée si l'expression est VRAI>
end
Forme 2
if <expression booléenne>
<suite d'instructions 1 exécutée si l'expression est VRAI>
else
<suite d'instructions 2 exécutée si l'expression est FAUSSE>
end
 
Forme 3
if <expression booléenne 1>
<suite d'instructions 1 exécutée si l'expression 1 est VRAI>
elseif <expression booléenne 2>
<suite d'instructions 2 exécutée si l'expression 1 est FAUSSE et que
l'expression 2 est VRAI>
.
.
.
else
<suite d'instructions n exécutée si aucune des expressions n'est VRAI >
end
Exemple :
Mettre à zéro toutes les composantes supérieures à 0.2 du vecteur v, on
peut écrire :
>> for i=1:5
>> if v(i)>0.2
>> v(i)=0
>> end
>> end
Les Opérateurs booléens
Opérateurs booléens avec par ordre de priorité :
Les opérateurs de comparaison :
– <, >, <= et >=
– égalité ==, non égalité ~=
Les opérateurs logiques
– et logique &
– ou logique |
Les fonctions
Syntaxe
Une fonction est constituée par :
– un en-tête :
function résultat = nom de la fonction (liste de paramètres )
– une section de commentaires :dont chaque ligne commence par le symbole % ;
– le corps de la fonction défini par un script.

Exemple:
function m = moyenne(x)
% MOYENNE(X) : moyenne des elements d’une liste ou d’un vecteur
% un argument autre qu’une liste ou un vecteur conduit a une erreur
x=input('valeur de x=')
[k,l] = size(x) ;
if ( (k~=1) & (l~=1) )
error('argument doit etre une liste ou un vecteur')
end
m = sum(x)/length(x) ;
• Le nom de la fonction et celui du fichier m-file qui en contient la définition
doivent être identiques. Ce fichier est le fichier m-file associé à la fonction.

• La commande help affiche les neuf premières lignes de la section de


commentaires

• Un fichier m-file associé à une fonction (i.e. qui porte le nom d’une fonction
et contient sa définition) peut contenir d’autres définitions de fonctions. La
fonction qui partage son nom avec le fichier ou fonction principale doit
apparaître en premier. Les autres fonctions ou fonctions internes peuvent être
appelées par la fonction principale, mais pas par d’autres fonctions ou depuis
la fenêtre de commande.
Exercices:
Exercice 1:
Ecrire un script qui déclare la variable R contenant la valeur 20. Déclarer 3 variables D, P
et S et affecter respectivement à ces variables les valeurs du diamètre, du périmètre et
de la surface d’un cercle dont le rayon est R.
On affichera à l’écran le contenu de ces différentes variables selon le format suivant : Un
cercle de rayon WW a pour diametre XX, pour circonference YY et pour surface ZZ.

Exercice 2 : multiplication de matrices


• A l’aide de trois boucles for imbriquées, écrire une fonction réalisant la multiplication
de 2 matrices de taille 5x5.

Exercice 3:
- On considère la fonction suivante f définie sur R par :

Écrire les instructions qui permettent à Matlab de tracer la fonction f sur [−1, 3]. On
utilisera un pas de 0.05.

Vous aimerez peut-être aussi