Généralités : MATLAB, Pourquoi ? Pour qui ?
Avant toute chose, il est important de définir ce qu'est MATLAB. Pour certains, c'est un logiciel, un outil, pour d'autres un langage.
En fait, c'est un peu tout cela.
lorsque l'on parle du logiciel MATLAB, on fait référence à l'outil que l'on utilise, l'interface utilisateur ;
lorsque l'on parle du langage MATLAB, on désigne la syntaxe spécifique que l'on met en œuvre dans cet outil.
Le nom MATLAB vient de l'anglais MATrix LABoratory. Une traduction littérale nous amène à voir MATLAB comme un laboratoire pour manipuler des matrices. Nous reviendrons sur ce point, qui est un élément fondamental du langage MATLAB : la plupart des fonctions définies dans MATLAB le sont pour des grandeurs matricielles, et par extension, pour des données tabulées.
MATLAB comprend de nombreuses fonctions, de calcul ou de traitements de données, d'affichage, de tracés de courbes, de résolution de systèmes et d'algorithmes de calculs numériques au sens large du terme.
Toutes ces fonctions sont définies par défaut dans MATLAB dans un langage de programmation spécifique que l'on appellera... MATLAB !
Ce langage comprend de nombreuses fonctions prédéfinies pour le calcul matriciel, mais pas seulement. De ce fait, les domaines d'application sont extrêmement variés, et l'on peut citer par exemple :
le calcul numérique dans le corps des réels ou des complexes ;
le calcul de probabilités ou les statistiques ;
le calcul intégral ou la dérivation ;
le traitement du signal ;
l'optimisation ;
le traitement d'image ;
l'automatisme.
Et si en standard, MATLAB propose des fonctions couvrant l'ensemble de ces domaines, si vos développements nécessitent de mettre en œuvre des programmes très poussés, il existe des fonctions plus spécifiques regroupées dans des TOOLBOX (que l'on peut traduire par "boîte à outils"). Ces toolbox sont des extensions évidemment payantes utiles, voire nécessaires, comportant des fonctions dédiées à ces domaines, pour des développements de niveau professionnel. On peut citer les extensions :
OPTIMIZATION pour l'optimisation ;
IMAGE PROCESSING pour le traitement d'image.
Pour l'utilisateur débutant, ces toolbox ne sont pas nécessaires dans un premier temps, mais il est important de savoir que le moment venu, si le besoin se fait sentir, vous aurez la possibilité d'exploiter ces toolbox, et leur richesse fonctionnelle.
Par ailleurs, assez vite nous verrons qu'il est possible d'enrichir les possibilités de MATLAB en développant ses propres fonctions, avec le langage MATLAB. La syntaxe de ce langage est accessible aux débutants, parce que tout est fait pour s'affranchir des contraintes qu'imposent la plupart des langages de programmation :
pas de chaînes de production : édition - définition des liens de bibliothèques - compilation - exécution ;
pas de nécessité de déclarer et typer les fonctions ;
Nous verrons cependant que la notion de type existe dans ce langage comme dans les autres, et que si cette notion est cachée à l'utilisateur débutant, il peut être utile d'en tenir compte...
De même, s'il est possible d'éviter la phase de compilation, cette possibilité qui facilite l'utilisation de ce langage pour le débutant, cela peut s'avérer être un frein à l'utilisation de MATLAB pour des développements avancés, qui demanderaient alors d'utiliser un autre langage plus performant. MATLAB, comme tout langage interprété, offre des performances globalement inférieures à d'autres langages compilés. Il faut pourtant reconnaître que les performances de l'interpréteur MATLAB s'améliorent de version en version, ce qui fait que dans bien des cas, les temps de calcul offerts aujourd'hui sont tout à fait honorables.
Notons enfin que MATLAB peut être exécuté sur les plates-formes les plus courantes : linux, mac os X ou windows. L'absence de compilation rend les programmes écrits sous forme de script, par nature portable : si vous écrivez un programme en utilisant MATLAB sur une plate-forme donnée, vous pouvez diffuser votre code qui pourra être "interprété" par un utilisateur travaillant sur une autre plate-forme.