Il existe 5 structures conditionnelles sous MATLAB :

  • L’instruction if
  • Choix ventilé : l’instruction switch
  • Boucle for
  • Boucle while
  • Les instructions break, continue, return, error, warning
  • Le traitement des erreurs avec try …. catch

 

L’instruction if

L’instruction if évalue une expression logique et exécute un groupe d’instructions lorsque l’expression logique est vraie.

Les instructions facultatives elseif et else permettent d’imbriquer des boucles conditionnelles supplémentaires. L’instruction end, clôture la structure conditionnelle if.

if conditions
  instruction (si les conditions sont vérifiées)
elseif conditions
  instruction (si les conditions ne sont pas vérifiées)
end

 

L’exemple suivant peuvent de vérifier si un entier naturel donné n est pair ou impair.

function pair_impair (n)
if rem (n,2) == 0
  disp ('nombre pair')
else
  disp ('nombre impair')
end

 

L’exécution donne :

>> pair_impair(2)

nombre pair

>> pair_impair(5)

nombre impar
  • rem :    retourne le reste de la division de deux nombre,
  • disp :     afficher le message spécifié sous forme d’une chaine de caractères.

 

 

L’instruction switch et case

L’instruction switch exécute un groupe d’instructions relativement à la valeur prise par une variable. Les instructions case et otherwise délimitent les groupes.

Le end est obligatoire à la fin de la structure.

switch variable_de_choix
  case cst1
    séquence d’instructions 1
  case cst2
    séquence d’instructions 2
  …
  case cstN
    séquence d’instructions N
  otherwise séquence d’instructions par défaut
end

 

Ci-dessous, un exemple de programme qui affiche un texte en fonction de la valeur de nombre.

switch nombre
    case -1
        disp('negative one');
    case 0
        disp('zero');
    case 1
        disp('positive one');
    otherwise
        disp('other value');
end

 

L’instruction for

La boucle for permet de répéter un nombre de fois prédéterminé une séquence d’instructions. Le end est obligatoire à la fin de la structure.

for compteur = valDebut : pas : valFin
  instructions
end

 

L’exemple suivant permet de générer, à l’aide de la boucle for, les carrés des n premiers entiers naturels.

Fichier ncarres.m

function x = ncarres
% tableau des carrés des n premiers entiers naturels

n = 10;
x = [];
for i = 1:n
  x = [x, i^2];
end

 

L’exécution donne :

>> ncarres
ans =
1     4     9   16   25   36   49   64   81   100          

 

L’instruction while

La boucle while permet de répéter une séquence d’instructions selon une condition. Le end est obligatoire à la fin de la structure.

while conditions
  instructions
end

 

Dans l’exemple suivant, on affiche le plus petit entier naturel n tel que 2^n soit supérieur ou égal à un nombre x donné.

Fichier n_x.m

function n = n_x
% affiche le plus petit entier naturel n tel que 2^n soit supérieur ou égal à un nombre x donné.
x = 15; n = 0;

while 2^n < x
  n = n + 1;
end

 

L’exécution donne :

>> n_x
ans =
4

 

Les instructions Break, return, error…

Il est possible de provoquer une sortie prématurée d’une boucle de contrôle.

 

L’instruction break :

L’instruction break permet de sortir d’une boucle for ou d’une boucle while. L’exécution se poursuit alors séquentiellement à partir de l’instruction suivant le mot clé end fermant la boucle. En cas de boucles imbriquées, on interrompt seulement l’exécution de la boucle intérieure contenant l’instruction break.

 

L’instruction continue :

L’instruction continue permet de sauter à l’itération suivante dans une boucle for ou while.

 

L’instruction return :

L’instruction return provoque un retour au programme appelant (ou au clavier). Les instructions suivant le return ne sont donc pas exécutées. L’instruction return est souvent utilisée conjointement avec une instruction conditionnée par exemple pour tester dans le corps d’une fonction si les paramètres d’entrée ont les valeurs attendues.

 

L’instruction error :

L’instruction error permet d’arrêter un programme et d’afficher un message d’erreur. La syntaxe est error(‘ message d »erreur ‘).

 

L’instruction warning :

L’instruction warning permet d’afficher un message de mise en garde sans suspendre l’exécution du programme.

La syntaxe est warning(‘ message de mise en garde ‘). Il est possible d’indiquer à MATLAB de ne pas afficher les messages de mise en garde d’un programme en tapant warning off dans la fenêtre de commandes. On rétablit l’affichage en tapant warning on.

 

Traitement des erreurs

Try catch

Quand on s’attend à une erreur d’exécution, try … catch permet de tester l’exécution d’un groupe d’instructions (entre try et catch). En cas d’erreur, l’exécution s’interrompt et un autre groupe d’instructions est exécuté (entre catch et end)

On peut régénérer l’erreur avec l’instruction rethrow(lasterror).

try

% Faire des traitements

catch

% Nettoyer l'espace de travail des traitements qui n'ont pas abouti

rethrow(lasterror)

end

 

La commande error

La commande error permet de stoppe l’exécution du programme en cours et d’affiche une erreur dans la fenêtre de commande.

>> n = 10; if n>=10, error('n doit être inférieur à 10'); end
n doit être inférieur à 10

 

Formate le message

>> n = 19; if n>=10, error('n doit être inférieur à 10 !\nVotre nombre est %d', n); end
n doit être inférieur à 10 !
Votre nombre est 19

 

Identifiant de message d’erreur

Vous pouvez ajouter un identifiant au message d’erreur.

Cet identifiant est composé de :

  • D’un composant (component) : MATLAB, Simulink…
  • D’un mnémonique (mnemonic) : divideByZero, actionNotTaken…
n = 19; if n>=10, error('MaBoiteAOutils:GénérationValeur', 'n doit être inférieur à 10 !\nVotre nombre est %d', n); end
n doit être inférieur à 10 !
Votre nombre est 19

 

Dernière erreur

[Msg, Id] = lasterr;

  • Msg : message d’erreur
  • Id : identifiant du message

Utiles pour préciser l’erreur

  • Selon le contexte
  • En français, par exemple
>> [Msg, Id] = lasterr

Msg =

n doit être inférieur à 10 !
Votre nombre est 19

Id =

MaBoiteAOutils:GénérationValeur

 

Avertissements

La fonction warning affiche un message d’avertissement dans la fenêtre de commande

Message formaté

Identifiants de message : Component:mnemonic

>> warning('Le paramètre est négatif')
Warning: Le paramètre est négatif

 

La fonction lastwarn renvoie le dernier message

 

Gestion de l’affichage des avertissements

Afficher les avertissements d’un type donné :

warning(‘On’, ‘MaBoiteAOutils:ParamNegatif’);

Ne pas afficher les avertissements d’un type donné :

warning(‘Off’, ‘MaBoiteAOutils:ParamNegatif’);

Afficher le mode d’affichage d’un type d’avertissements :

warning(‘Query’, ‘MaBoiteAOutils:ParamNegatif’);

Ne plus afficher aucun avertissement :

warning(‘Off’, ‘all’);

Ne plus afficher le dernier avertissement :

warning(‘Off’, ‘last’);