FAQ erreurs et avertissements
FAQ erreurs et avertissementsConsultez toutes les FAQ
Nombre d'auteurs : 9, nombre de questions : 75, dernière mise à jour : 14 juin 2021
MATLAB est sensible à la casse : différenciation des minuscules/majuscules dans le nom des fonctions et variables. Ainsi deux variables nommées tableau et Tableau sont deux variables bien distinctes et vous obtiendrez une erreur si vous écrivez l'une à la place de l'autre :
>> tableau = [1 2 ; 3 4];
>> a = Tableau
??? Undefined function or variable 'Tableau'.
En ce qui concerne les fonctions, avant la version MATLAB 2011b, vous obtiendrez juste un message d'avertissement, la « bonne » fonction étant tout de même appelée (exemple pour un fichier nommé maFonction.m) :
>> mafonction
Warning: Could not find an exact (case-sensitive) match for 'mafonction'.
<chemin du fichier>\maFonction.m is a case
-insensitive match and will be used instead.
You can improve the performance of your code by using exact
name matches and we therefore recommend that you update your
usage accordingly. Alternatively, you can disable this warning using
warning('off'
,'MATLAB:dispatcher:InexactCaseMatch'
).
This warning will become an error in future releases.
À partir de la version R2011b, vous obtiendrez une erreur :
>> mafonction
??? Cannot find an exact (case-sensitive) match for 'mafonction'.
The closest match is: maFonction
in <chemin du fichier>\maFonction.m
Ce message met en avant un tableau dont la taille grandit au sein d'une boucle, au risque que MATLAB ait à effectuer plusieurs réallocations et copies de ses valeurs au cours de l'exécution de cette dernière, ralentissant ainsi son exécution.
MATLAB conseille donc de créer dès le départ un tableau de taille suffisamment grande afin d'éviter cela.
Voir cet autre sujet Qu'est-ce que la préallocation de mémoire ? pour en savoir plus.
Ce message intervient lorsque l'on souhaite afficher une image avec la fonction imshowDocumentation fonction imshow de l'Image Processing Toolbox dont la taille réelle est trop grande pour pouvoir être affichée entièrement à l'écran. MATLAB réduit ainsi la taille de l'image à XX % de sa taille réelle afin que celle-ci puisse être affichée entièrement à l'écran.
Dans MATLAB, toute instruction donnant un résultat ou contenant une affectation non terminée par un point-virgule (semicolon en anglais), voit sa valeur affichée dans la fenêtre de commande (Command Window).
Lors d'une exécution en boucle, cet affichage peut fortement ralentir votre code (qui plus est pour de grands tableaux), et éventuellement cacher les informations que vous souhaitez réellement afficher.
À moins de réellement le vouloir (lors d'une séance de débogage par exemple), penser à mettre un « ; » à la fin de ces lignes affichant des valeurs.
Note : l'affichage (volontaire) de valeurs se fera au moyen des fonctions dispDocumentation de la fonction disp ou fprintfDocumentation de la fonction fprintf.
Message similaire à '***' might be growing inside a loop. Consider prealllocating for speed..