Ouvrir le menu principal

MATLAB

logiciel informatique
(Redirigé depuis Matlab)
MATLAB
Description de l'image Matlab Logo.png.

Informations
Développé par MathWorks
Première version Voir et modifier les données sur Wikidata
Dernière version R2018b ()[1]
R2019b ()Voir et modifier les données sur Wikidata
Écrit en C, C++, Fortran et JavaVoir et modifier les données sur Wikidata
Système d'exploitation Microsoft Windows, macOS et GNU/LinuxVoir et modifier les données sur Wikidata
Environnement Linux, Unix, Mac OS, Windows
Formats lus MATLAB M-File (d), Hierarchical Data Format, MAT-file (d), MAT-file, Level 4 (d), MAT-file, Level 5, version 6 (d), MAT-file, Level 5, version 7 (d), MAT-file, Level 5, version 7.3 (d) et BigTIFF (d)Voir et modifier les données sur Wikidata
Formats écrits MATLAB M-File (d) et Hierarchical Data FormatVoir et modifier les données sur Wikidata
Type Calcul numérique
Licence Propriétaire
Site web fr.mathworks.com

MATLAB (« matrix laboratory ») est un langage de script[2] émulé par un environnement de développement du même nom ; il est utilisé à des fins de calcul numérique. Développé par la société The MathWorks, MATLAB permet de manipuler des matrices, d'afficher des courbes et des données, de mettre en œuvre des algorithmes, de créer des interfaces utilisateurs, et peut s’interfacer avec d’autres langages comme le C, C++, Java, et Fortran. Les utilisateurs de MATLAB (environ 2 millions en 2019[3]) sont de milieux très différents comme l’ingénierie, les sciences et l’économie dans un contexte aussi bien industriel que pour la recherche. Matlab peut s’utiliser seul ou bien avec des toolboxes (« boîte à outils »).

HistoireModifier

Le langage MATLAB a été conçu par Cleve Moler à la fin des années 1970 à partir des bibliothèques Fortran, LINPACK et EISPACK[4]. Alors professeur de mathématiques à l'université du Nouveau-Mexique, il souhaitait permettre à ses étudiants de pouvoir utiliser ces deux bibliothèques sans connaitre le Fortran. Cleve Moler l'utilisa ensuite pour des cours donnés à l'université Stanford où il reçut un accueil mitigé de la part des étudiants en mathématiques (habitués au Fortran). Par contre, les étudiants en technologie, en particulier en traitement du signal, furent beaucoup plus intéressés. Un ingénieur, Jack Little en comprend rapidement les capacités et entreprend avec un collègue, Steve Bangert, de le recoder en langage C. Jack Little, Cleve Moler et Steve Bangert créèrent la société The MathWorks en 1984 afin de commercialiser la version 1.0 de MATLAB[5],[6].

MATLAB a ensuite évolué, en intégrant par exemple la bibliothèque LAPACK en 2000[7], en se dotant de nombreuses boîtes à outils (Toolbox) et en incluant les possibilités données par d'autres langages de programmation comme C++ ou Java.

SyntaxeModifier

Le logiciel MATLAB est construit autour du langage MATLAB. Une interface en ligne de commande, qui est un des éléments du bureau MATLAB, permet d’exécuter des commandes simples. Des séquences de commandes peuvent être sauvegardées dans un fichier texte, typiquement avec l’éditeur MATLAB, sous la forme d’un « script » ou encapsulées dans une fonction[8]

VariablesModifier

Les variables sont définies avec l’opérateur d’affectation =. MATLAB est un langage à typage faible (dans le sens où les conversions de type sont implicites)[9]. Les variables ne sont pas déclarées avec leur type, sauf pour les objets symboliques[10], Par exemple :

>> x = 17
x =
 17
>> x = 'hat'
x =
hat

Vecteurs/matricesModifier

Comme son nom l’indique, l’intérêt de MATLAB est de pouvoir manipuler facilement des tableaux à une dimension (« vecteur » dans le vocabulaire MATLAB) ou deux dimensions (« matrices » ) ou plus. Par défaut, toutes les variables sont des tableaux, MATLAB permet de faire de la programmation matricielle (en). En pratique, les tableaux sont définis de la manière suivante :

>> A = [3*4, pi/2]
A =
   12.0000    1.5708
>> B = 3*sin(A)
B =
   -1.6097    3.0000
>> C = 1:2:9
C =
 1 3 5 7 9
>> D = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
D =
 16  3  2 13
  5 10 11  8
  9  6  7 12
  4 15 14  1

>> D(2,3)
ans =
 11

Lorsqu’on définit la variable nommée C (ou affecte une nouvelle valeur à cette variable si celle-ci existe déjà), on crée un tableau contenant les nombres 1, 3, 5, 7 et 9. soit un tableau débutant par 1 (valeur initiale), incrémenté à chaque valeur par 2 (l’incrément), et s’arrête avec la valeur (ou après avoir dépassé) 9 (valeur finale). La variable D est une matrice.

L’indexation des tableaux commence à 1[11], ce qui est la convention utilisée pour les matrices en mathématiques et par le langage Fortran, mais qui est contraire à certains langages de programmation où l’indexation commence à 0 (par exemple C ou Python).

La plupart des fonctions MATLAB acceptent les matrices et s’appliquent à chacun de ses éléments. Par exemple, mod(2*J,n) multiplie chaque élément de « J » par 2, puis divise chaque élément modulo « n ». Par ailleurs s’il est possible d’utiliser des boucles « For » ou « while » ; il est possible de se servir des notations vectorielles pour les remplacer. Par exemple, le code suivant, crée un carré magique de dimension n pour, n impair[12].

[J,I] = meshgrid(1:n);
A = mod(I+J-(n+3)/2,n);
B = mod(I+2*J-2,n);
M = n*A + B + 1;

La fonction meshgrid permet de créer des matrices carrées contenant 1:n.

Outils et modules associésModifier

MATLAB est complété par de multiples boîtes à outils[13]. Parmi les plus utilisés, on trouve :

  • Communications Toolbox
  • Control System Toolbox
  • Simscape
  • Image Processing Toolbox[14]
  • MATLAB Compiler
  • Deep Learning Toolbox
  • Optimization Toolbox
  • Parallel Computing toolbox
  • Real-Time Workshop, renommé commercialement SimulinkCoder[15]
  • Robust Control Toolbox
  • Signal Processing Toolbox
  • Excel Link
  • Simulink
  • Statistics and Machine Learning Toolbox
  • System Identification Toolbox
  • Predictive Maintenance Toolbox
  • Stateflow

AlternativesModifier

RéférencesModifier

  1. « https://www.mathworks.com/videos/release-2018b-highlights-1535674711564.html »
  2. « Scripting Language vs Programming Language », sur Stack Overflow (consulté le 31 août 2019)
  3. https://fr.mathworks.com/company/aboutus.html
  4. Cleve B. Moler, Design of an interactive matrix calculator, AFIPS '80 Proceedings of the May 19-22, 1980, national computer conference DOI:10.1145/1500518.1500576
  5. (en) Cleve Moler, « The Origins of MATLAB »
  6. Code source de la première version de MATLAB (écrite en Fortran), sur le site FTP du FUNET
  7. (en) Cleve Moler, « MATLAB Incorporates LAPACK »
  8. (en) « MATLAB technical documentation », Mathworks.com (consulté le 7 juin 2010)
  9. « Comparison of MATLAB and Other OO Languages »
  10. sym function Documentation for the MATLAB Symbolic Toolbox
  11. (en) « MATLAB Online Documentation », Mathworks.com (consulté le 7 juin 2010).
  12. Experiments with MATLAB, Cleve Moler (chap. 10 - Magic Squares).
  13. Liste des produits de MathWorks
  14. (en) Léonard et al., « Image analysis of X-ray microtomograms of soft materials during convective drying », Journal of Microscopy, vol. 2,‎ , p. 197-204 (DOI 10.1046/j.1365-2818.2003.01242.x)« Algorithms were developed using Matlab software and the image analysis toolbox version 6.0 from Matworks. »
  15. https://www.mathworks.com/products/simulink-coder Simulink Coder
  16. page web d'ocamlmath

BibliographieModifier

  • Adrian Biran et Moshe Breiner, MATLAB pour l'ingénieur : Versions 6 et 7, Pearson Education, 2004 (ISBN 2744070254)
  • Jean-Thierry Lapresté, Introduction à MATLAB, Ellipses, 2005 (ISBN 2729824014)