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