Cet article ne s'appuie pas, ou pas assez, sur des sources secondaires ou tertiaires ().
| Créateur | Cleve Moler |
|---|---|
| Développé par | MathWorks |
| Première version |
👁 Voir et modifier les données sur Wikidata |
| Dernière version |
R2025b ()[1]👁 Voir et modifier les données sur Wikidata |
| Écrit en |
C, C++, Fortran et Java👁 Voir et modifier les données sur Wikidata |
| Système d'exploitation |
Microsoft Windows, macOS et Linux👁 Voir 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), MAT4 (d), MAT-file, Level 5, version 6 (d), MAT-file, Level 5, version 7 (d), MAT-file, Level 5, version 7.3 (d), MATLAB Simulink model Template (d), MATLAB license passcode (d), MATLAB Mac 64bit compiled function (d), MATLAB Linux 64bit compiled function (d), MATLAB support package (d), MATLAB app installer (d), MATLAB Compiler Project (d), Live Code File Format (d) et Light Sheet Microscope (d)👁 Voir et modifier les données sur Wikidata |
| Formats écrits |
MATLAB M-File (d), Hierarchical Data Format, MATLAB Simulink model Template (d), MATLAB Mac 64bit compiled function (d), MATLAB Linux 64bit compiled function (d), MATLAB support package (d), MATLAB app installer (d), MATLAB Compiler Project (d) et Live Code File Format (d)👁 Voir et modifier les données sur Wikidata |
| Type | Calcul numérique |
| Licence | Propriétaire |
| Site web | fr.mathworks.com |
MATLAB (ou Matlab) est un langage de script[2] destiné au calcul numérique, et émulé par l'environnement de développement du même nom. Le nom MATLAB est un mot-valise construit sur l'anglais rix oratory (« laboratoire matriciel »).
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, Python et Fortran.
Les utilisateurs de MATLAB (environ 4 millions en 2019[3]) sont de milieux très différents tels que 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 »).
Histoire
[modifier | modifier le code]Le langage MATLAB est conçu par Cleve Moler à la fin des années 1970 à partir de deux bibliothèques écrites en Fortran : LINPACK et EISPACK[4].
Alors professeur de mathématiques à l'université du Nouveau-Mexique, il souhaite permettre à ses étudiants d'utiliser ces deux bibliothèques sans connaître le Fortran. Cleve Moler l'utilise ensuite pour des cours donnés à l'université Stanford où il reçoit un accueil mitigé de la part des étudiants en mathématiques habitués au Fortran.
Les étudiants en technologie, en particulier en traitement du signal, sont beaucoup plus intéressés. Un ingénieur, Jack Little (en), en comprend rapidement les capacités et entreprend avec un collègue, Steve Bangert, de le recoder en langage C. En 1984, Jack Little, Cleve Moler et Steve Bangert créent la société The MathWorks afin de commercialiser la version 1.0 de MATLAB[5],[6].
MATLAB évolue par la suite 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.
Syntaxe
[modifier | modifier le code]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].
Variables
[modifier | modifier le code]Les variables sont définies avec l’opérateur d’affectation =.
MATLAB est un langage à typage faible, c'est-à-dire que 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/matrices
[modifier | modifier le code]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), deux dimensions (« matrices ») ou à multi-dimensions. Par défaut, toutes les variables sont des tableaux, MATLAB permet de faire de la programmation matricielle. En pratique, les tableaux sont définis de la manière suivante :
>>A=[3*4,pi/2] A= 12.00001.5708 >>B=3*sin(A) B= -1.60973.0000 >>C=1:2:9 C= 13579 >>D=[163213;510118;96712;415141] D= 163213 510118 96712 415141 >>D(2,3) ans= 11
Lorsqu’on définit la variable nommée C (ou lui affecte une nouvelle valeur si celle-ci existe déjà), on crée un tableau contenant les nombres 1, 3, 5, 7 et 9. Ce tableau débute par la valeur initiale 1, incrémenté à chaque valeur par l'incrément 2, et s’arrête avec la valeur finale (ou après avoir dépassé) 9. 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 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 leurs é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 itératives « 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és
[modifier | modifier le code]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
Alternatives
[modifier | modifier le code]Alternatives commerciales
[modifier | modifier le code]- AMESim
- GAUSS
- IDL
- Logiciels de traitement d'image pour Image Processing Toolbox
- Maple
- Mathcad
- Mathematica
- OxMetrics (en)
- PyIMSL Studio
- SAS/IML
- Stata (Mata)
- Sysquake
Alternatives libres
[modifier | modifier le code]Références
[modifier | modifier le code]- ↑ « https://www.mathworks.com/videos/r2025b-release-highlights-1757449057407.html »
- ↑ « Scripting Language vs Programming Language », sur Stack Overflow (consulté le )
- ↑ « La société », sur mathworks.com (consulté le ).
- ↑ 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
- ↑ (en) Cleve Moler, « The Origins of MATLAB »
- ↑ Code source de la première version de MATLAB (écrite en Fortran), sur le site FTP du FUNET
- ↑ (en) Cleve Moler, « MATLAB Incorporates LAPACK »
- ↑ (en) « MATLAB technical documentation », Mathworks.com (consulté le )
- ↑ « Comparison of MATLAB and Other OO Languages »
- ↑ sym function, Documentation for the MATLAB Symbolic Toolbox.
- ↑ (en) « MATLAB Online Documentation », Mathworks.com (consulté le ).
- ↑ Experiments with MATLAB, Cleve Moler (chap. 10 - Magic Squares).
- ↑ Liste des produits de MathWorks
- ↑ (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. »
- ↑ https://www.mathworks.com/products/simulink-coder Simulink Coder
Voir aussi
[modifier | modifier le code]Bibliographie
[modifier | modifier le code]- 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)
Liens externes
[modifier | modifier le code]- Sites officiels : (en) www.mathworks.com/products/matlab.html et (de) de.mathworks.com/products/matlab.html👁 Voir et modifier les données sur Wikidata
- Notices dans des dictionnaires ou encyclopédies généralistes👁 Voir et modifier les données sur Wikidata
:
Logiciels de calcul numérique |
|
|---|---|
| Logiciel libre | |
| Logiciel propriétaire | |
| Comparaisons des logiciels d'analyse numérique | |
- Article manquant de références depuis avril 2019
- Article manquant de références/Liste complète
- Image locale différente de celle de Wikidata
- Page utilisant P571
- Page utilisant P348
- Page utilisant P277
- Logiciel catégorisé automatiquement par langage d'écriture
- Page utilisant P306
- Page utilisant des données de Wikidata à traduire de l'anglais
- Page utilisant P1072
- Page utilisant P1073
- Article utilisant une Infobox
- Article contenant un appel à traduction en anglais
- Page utilisant une présentation en colonnes avec un nombre fixe de colonnes
- Page utilisant P856
- Page utilisant un modèle Bases inactif
- Page utilisant P1417
- Page utilisant P4342
- Page pointant vers des bases externes
- Page pointant vers des dictionnaires ou encyclopédies généralistes
- Article de Wikipédia avec notice d'autorité
- Portail:Logiciel/Articles liés
- Portail:Informatique/Articles liés
