Vous êtes sur la page 1sur 3

Chapitre 2

Les Structures de contrôle dans Matlab


1- Introduction

Matlab dispose des structures de contrôle suivantes :

for : boucle avec compteur while : répétitive prétestée


if : alternative switch : choix ventilé
Toutes ces structures se terminent par un end.

2- La boucle for

La syntaxe de la répétitive avec compteur de Matlab est la suivante.

for compteur=debut :{pas :} fin


…….
end
Les constantes réelles début et fin sont les bornes inf et sup de l’intervalle à parcourir. La
constante (positive ou négative) pas est l’incrément qui vaut 1 par défaut.l’exécution de la
boucle se termine quand la variable compteur devient plus grande que fin (cas d’un incrément
positif), ou plus petite que début (cas d’un incrément négatif).

Le bout de code(en ligne!) suivant calcule, à l’aide de la boucle for, le n-ème terme de la suite
de Fibonacci

>> n=20;
>> u0=1;u1=1;
>> for i=2:n,u=u1+u0,u0=u1;u1=u;end
>> u
u=

10946
Les boucles for peuvent être imbriquées. Par exemple, la matrice de Hilbert de taille( mxn)
peut être obtenue à l’aide de la double boucle suivante :

for i=1:m
for j=1:n
H(i,j)=1/(i+j-1);
end
end
Remarque :

Il faut éviter d’utiliser les variables i et j comme indices, quand on travaille avec des nombres
complexes, puisqu’elles sont des variables prédéfinies dont la valeur est .

3- La boucle while
Cette instruction est très utile dans les algorithmes itératifs, la boucle while consiste à
exécuter une séquence d’instructions tant qu’une condition est vérifiée. La syntaxe de la
boucle while est

While expression_logique
……..
end
Oùexpression_logique est en général une opération de comparaison. Pour éviter une boucle
sans fin, les instructions dans le corps de la boucle doivent impérativement agir sur le résultat
de expression_logique.
La boucle suivante calcule les termes successifs de la suite de Fibonacci et s’arrête si un>106.
u0=1; u1=1;u=2;n=3;
while(n<10^6)
n=n+1;
n=u1+u0;
u0=u1;u1=u;
end

4- L’alternative if

L’alternative simple a pour syntaxe

if expression_logique
instructions I
else
instructions II
end
La séquence d’instructions « instruction I » est exécutée si expression_logique est vraie,
sinon c’est la séquence d’instructions « instruction I » qui sera exécutée. A noter que la partie
else peut être facultative. Dans ce cas l’alternative se réduit à

if expression_logique
instructions I
end
L’alternative complète a pour syntaxe

if expression_logique 1
instructions I
elseif expression_logique 2
instructions II
……
elseif expression_logiqueN
instructions N
else
instructions par défaut
end

Le mot clé est bien elseif et non else if (sans espace).


[m,n]=size(A) ;
[p,q]=size(B) ;
if (n==p)
C=A*B;
elseif (q==m)
C=B*A
else
error(‘Produit impossible’)
end
La fonction error permet d’arrêter le programme après affichage du message passé en
paramètre et l’émission d’un « bip ».

5- Choix multiple switch case

Avec l’instruction switch case, l’exécution des différents choix est basée sur la valeur d’une
variable ou d’une expression et non sur plusieurs expressions logiques comme dans
l’alternative if. Les mots clés case et otherwise délimitent les groupes d’expressions. La
syntaxe est

switch sélecteur
case cte1
instructions I
case cte2
instructions II
….
case cte N
instructions N
otherwise
instructions par défaut
Error(‘Factorisation inconnue’)
end

- sélecteur est une variable ou expression numérique ou chaines de caractères ;
- cte1, cte2, …..,cteN sont des constantes numériques ou chaines.
Dans l’exemple suivant, on sélectionne une factorisation à partir de la valeur d’une variable
chaine.

fact=’LU’ ;
switch fact
case ‘LU’
[F1,F2]=lu(A) ;
case ‘QR’
[F1,F2]=qr(A);
case’CHOL’
F1=chol(A);
otherwise
error(‘Factorisation inconnue’)
end