====== Leçon 4 : débugger du code Matlab ======
===== Quelques astuces =====
* Dans les versions de Matlab, on peut utiliser la touche TAB pour compléter un mot dans la fenêtre de commande. C'est assez utile lorsqu'on a oublié le nom exact d'une fonction.
* Si on ne se souvient plus des arguments d'une fonction, ou de son utilité, la fonction ''help'' est là. Ainsi,
>> help find
FIND Find indices of nonzero elements.
I = FIND(X) returns the linear indices corresponding to
the nonzero entries of the array X. X may be a logical expression.
Use IND2SUB(SIZE(X),I) to calculate multiple subscripts from
the linear indices I.
I = FIND(X,K) returns at most the first K indices corresponding to
the nonzero entries of the array X. K must be a positive integer,
but can be of any numeric type....
* Les touches fléchées verticalement permettent de revenir à d'anciennes commandes. Si vous avez déjà commencé à taper quelques caractères, vous ne parcourrez que les commandes commençant par ces caractères.
* Quelques commandes en vrac bien utiles (utilisez ''help'' pour connaître leur signification): ''fliplr'',
===== Comment débugger ? =====
La première approche consiste à mettre des //points d'arrêts// dans le code ((pour définir ces points d'arrêts, il suffit de cliquer dans la marge à gauche de la ligne sur laquelle on veut s'arrêter)). 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.
A travers le menu ''debug'', vous avez 4 moyens d'avancer dans le code:
* ''Step'': Effectue les lignes les unes après les autres
* ''Step In'': Comme ''Step'' mais débugge également les fonctions utilisées
* ''Step Out'': Permet de sortir d'une sous-fonction tout en continuant à débugger. Utile lorsqu'on a utilisé à tort ''Step In''
* ''Continue'': Continue le code sans débuggage jusqu'à la fin ou jusqu'au prochain point d'arrêt.
Cette méthode est très utile et très utilisée. Cependant, il y a une seconde méthode peu utilisée, mais qui peut se révéler très pratique. Elle consiste à définir le comportement de Matlab en cas d'erreur, de warning ou autre. Cela se définit dans le menu ''Debug'' -> ''Stop if Error/Warning''.
Par exemple, en cliquant sur ''Always stop if errors'' dans l'onglet ''Error'', Matlab va se mettre en "pause" dès qu'il va rencontrer une erreur: cela va vous permettre de voir l'état des différentes variables juste avant l'arme l'erreur fatale.
===== Exercice =====
Je pense que vous aurez suffisamment d'occasions pour vous exercer tout seul ;-)
Bonne continuation avec Matlab !