MATLAB

Le MATLAB est un environnement du et un langage de programmation de calcul numériques . Créé par le le MathWorks , MATLAB permet la manipulation facile de la matrice , la traçage des fonctions et des données, l'exécution de la création des algorithmes des interfaces utilisateurs et se connecter par interface aux programmes dans d'autres langues. Bien qu'il se spécialise dans le calcul numérique, une boîte à outils facultative se connecte par interface au moteur symbolique de l'érable , lui permettant de faire partie d'un plein système d'algèbre d'ordinateur de .

En date du 2004 , MATLAB a été employé par plus d'un million de personnes dans l'industrie et le milieu universitaire.

Histoire

Abréviation le " ; oratory" du laboratoire de rix de la natte ; , MATLAB a été inventé vers la fin des années 70 par le Cleve Moler , puis Président du département de l'informatique du à l'université de du Mexique . Il l'a conçu pour donner à ses étudiants l'accès au LINPACK et au EISPACK sans devoir apprendre Fortran . Il s'est bientôt écarté à d'autres universités et a trouvé une assistance forte au sein de la communauté des mathématiques appliquées . Le Jack peu de , un ingénieur, a été exposé à lui pendant une visite Moler fait à l'Université de Stanford dans le 1983 . Identifiant son potentiel commercial, il s'est joint à Moler et à Steve Bangert. Ils ont récrit MATLAB dans le C et ont fondé le le MathWorks dans le 1984 pour continuer son développement. Ces bibliothèques récrites ont été connues comme JACKPAC.

MATLAB a été adopté la première fois par les ingénieurs d'études de commande , peu de spécialité, mais s'est rapidement écarté à beaucoup d'autres domaines. Il est maintenant également employé dans l'éducation, en particulier l'enseignement de l'algèbre linéaire et l'analyse numérique , et est populaire parmi des scientifiques impliqués du à traitement d'images.

Syntaxe

MATLAB est construit autour de la langue de MATLAB, parfois appelée le M-code de ou simplement le M . La manière la plus simple d'exécuter le M-code est de le saisir au message de sollicitation, le >> , dans la fenêtre de commande, un des éléments de l'ordinateur de bureau de MATLAB. De cette façon, MATLAB peut être employé comme coquille mathématique interactive . Des ordres des commandes peuvent être archivés dans un dossier des textes, typiquement using le rédacteur de MATLAB, comme manuscrit ou être encapsulés dans une fonction , prolongeant les commandes disponibles.

Variables

Des variables sont définies avec l'opérateur de tâche, =. MATLAB est le dynamiquement dactylographié, signifiant que des variables peuvent être assignées sans déclarer leur type, et que leur type peut changer. Les valeurs peuvent venir des constantes du calcul impliquant des valeurs d'autres variables, ou du rendement d'une fonction. Par exemple : lang=" de >> X = 17 X = 17 >> X = « chapeau » X = chapeau >> X = 3*4 X = 12 >> y = 3*sin (x) y = -1.6097

Vecteurs/matrices

MATLAB est un " ; Matrix Laboratory" ; , et en tant que tels il fournit beaucoup de manières commodes pour créer des matrices de diverses dimensions. Dans le MATLAB vernaculaire, un vecteur de se rapporte à un unidimensionnel (1× N ou matrice de N ×1), généralement désignée sous le nom d'une rangée dans d'autres langages de programmation. Une matrice de se rapporte généralement à une matrice multidimensionnelle, c., une matrice avec plus d'une dimension, par exemple, un M de × du N , un L , etc. de × du M de × du N , où le N , le M , et le L sont plus grands que 1. Dans d'autres langues, une telle matrice pourrait désigné sous le nom d'un choix de rangées, ou du choix de rangées de rangées, ou simplement comme tableau multidimensionnel.

MATLAB fournit une manière simple de définir des rangées simples using la syntaxe : init : de l'incrément : terminateur . Par exemple : lang=" de >> rangée = 1:2 : 9 rangée = 1 3 5 7 9 définit un array appelé variable (ou assigne une nouvelle valeur à une variable existante avec le nom array) qui est une rangée comprenant les valeurs 1, 3, 5, 7, et 9. c'est-à-dire, que la rangée commence à 1, la valeur de l'init de , et des incréments de chaque valeur de la valeur précédente par 2 (la valeur d'incrément de ), et des arrêts une fois qu'elle atteint mais ne dépassant pas 9 (9 étant la valeur du terminateur). lang=" de >> rangée = 1:3 : 9 rangée = 1 4 7 la valeur de l'incrément de peut être laissée réellement hors de cette syntaxe (avec un des deux points), pour employer une valeur par défaut de 1. lang=" de >> ari = 1:5 ari = 1 2 3 4 5 assigne à la variable appelée ari une rangée avec les valeurs 1, 2, 3, 4, et 5, puisque la valeur par défaut de 1 est employée comme incrementer.

L'indexation un-est basée, qui est la convention habituelle pour les matrices dans les mathématiques. C'est atypique pour les langages de programmation, dont les rangées commencent plus souvent par zéro.

Des matrices peuvent être définies en séparant les éléments d'une rangée avec l'espace vide ou la virgule et en employant un point-virgule pour terminer chaque rangée. La liste d'éléments devrait être entourée par les crochets. Des éléments et les subarrays sont accédés using la parenthèse (). lang=" de >> A = 3 2 13 ; 5 10 11 8 ; 9 6 7 12 ; 4 15 14 1 A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

>> A (2.3) american national standard = 11

>> A (2 : 4.3 : 4) american national standard = 11 8 7 12 14 1 Une matrice d'identité carrée du n de taille peut être produite using l'oeil fonction, et des matrices de n'importe quelle taille avec des zéros ou ceux peuvent être produites avec les zéros fonctions et le ceux , respectivement. lang=" de >> oeil (3) american national standard = 1 0 0 0 1 0 0 0 1 >> zéros (2.3) american national standard = 0 0 0 0 0 0 >> ceux (2.3) american national standard = 1 1 1 1 1 1

La plupart des fonctions de MATLAB peuvent accepter des matrices et s'appliqueront à chaque élément. Par exemple, mod (2*J, n) multipliera chaque élément dans le " ; J" ; de 2, et réduire alors chaque " de modulo d'élément ; n" ;. MATLAB inclut le " standard ; for" ; et " ; while" ; les boucles, mais l'utilisation de la notation vectorisée de MATLAB produit souvent le code il est plus facile lire qu'et plus rapide pour s'exécuter. Ce code, extrait du magic.m de fonction, crée un de la place magique M pour des valeurs impaires du n .

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

Point-virgule

En beaucoup d'autres langues, le point-virgule est exigé pour terminer des commandes. Dans MATLAB le point-virgule est facultatif. Si un rapport n'est pas terminé avec un point-virgule, alors le résultat du rapport est montré. Un rapport qui ne renvoie pas explicitement un résultat, par exemple le « clc », se comporteront la même chose si un point-virgule est inclus.

Graphiques

La parcelle de terrain fonction peut être employée pour produire un graphique à partir du X de deux vecteurs et du y . Le code : lang=" de X = 0 : pi/100 : 2*pi ; y = péché (x) ; parcelle de terrain (x, y) produit la figure suivante de la fonction de sinus de :

Des graphiques tridimensionnels peuvent être produits using la vague déferlante fonctions, le plot3 ou la maille de . lang=" de = meshgrid (- 8 : .5 : 8) ; R = racine carrée (X.^2)+eps ; Z = péché (R). /R ; vague déferlante (X, Y, Z) Ce code produit la parcelle de terrain 3D d'une fonction bidimensionnelle de Sinc de du rayon.

Limitations

MATLAB est un produit de propriété industrielle du du MathWorks, ainsi les utilisateurs sont sujets au lock-in de fournisseur de . Un certain d'autres langues-sources , cependant, sont partiellement compatible (comme octave de GNU de ) ou fournissent un itinéraire de migration simple (comme Scilab ).

MATLAB emploie des parenthèses, par exemple y = f (x), pour l'indexation dans une rangée et appeler une fonction. Bien que cette syntaxe ambiguë puisse faciliter un commutateur entre un procédé et une table de consultation , qui correspondent aux fonctions mathématiques , une lecture soigneuse du code peut être exigée pour établir l'intention.

MATLAB manque d'un système de paquet, comme ceux trouvés dans des langues modernes telles que Java et python, où des classes soient résolues clairement, par exemple le java. Dans MATLAB, toutes les fonctions partagent le namespace global, et la priorité des fonctions avec le même nom est déterminée par l'ordre dans lequel elles apparaissent dans le chemin du MATLAB de l'utilisateur et d'autres règles subtiles. En soi, deux utilisateurs peuvent éprouver différents résultats en exécutant ce qui semble autrement être le même code quand leur chemin est différent.

Beaucoup de fonctions ont un comportement différent avec des arguments de matrice et de vecteur. Puisque les vecteurs sont des matrices d'une rangée ou d'une colonne, ceci peut donner des résultats inattendus. Par exemple, sum de fonction (A)A est une matrice donne un vecteur de rangée contenant la somme de chaque colonne de A, et le sum (v)v est un vecteur de colonne ou de rangée donne la somme de ses éléments ; par conséquent le programmeur doit faire attention si l'argument de matrice de sum peut se dégénérer dans une rangée de simple-rangée. Tandis que sum et beaucoup de fonctions semblables acceptent un argument facultatif pour spécifier une direction, d'autres, comme plot, ne font pas, et exiger les contrôles additionnels. Il y a d'autres cas où être uniformément l'interprétation de MATLAB du code ne peut pas ce que l'utilisateur a prévu (par exemple comment les espaces sont manipulés à l'intérieur des parenthèses comme séparateurs où il semble raisonnable mais pas où il ne fait pas, ou les ordres d'évasion de barre oblique inverse qui sont interprétés par certaines fonctions comme fprintf mais pas directement par l'analyseur de langue parce qu'il ne serait pas commode pour des annuaires de Windows). Ce qui pourrait être considéré comme convenance pour des commandes introduites interactivement où l'utilisateur peut vérifier que MATLAB fait ce que l'utilisateur veut peut être moins de support de la nécessité de construire le code réutilisable .

Bien que l'autre Datatypes soient disponible, le défaut est une matrice des doubles . Ce type de rangée n'inclut pas une manière d'attacher des attributs tels que des unités de technologie ou des taux de prélèvement. Bien que des marqueurs d'heure et de date aient été ajoutés dans R14SP3 avec la série chronologique objecter, le taux d'échantillon de manque toujours. De tels attributs peuvent être contrôlés par l'utilisateur par l'intermédiaire des structures ou d'autres méthodes.

L'indexation de rangée de un-est basée qui est la convention commune pour les matrices dans les mathématiques, mais n'adapte pas à la convention d'indexation des ordres qui ont les index zéro ou négatifs. Par exemple, dans MATLAB le DFT (ou FFT ) est défini avec le composant de C.C de à l'index 1 au lieu de l'index 0, qui n'est pas compatible à la définition standard du DFT. Cette convention de indexation un-basée est le dur codé dans MATLAB, le rendant difficile pour qu'un utilisateur définisse leurs rangées répertoriées zéro-basées ou négatives de propres pour modeler avec concision une idée ayant des index non positifs.

MATLAB ne soutient pas les références , qui le rend difficile de mettre en application les structures de données qui contiennent des adressages indirects, tels que les tables de brouillage ouvertes, les listes chaînées, les arbres, et les diverses autres structures de données de l'informatique communes. En outre, la langue passe uniformément des arguments de fonction par valeur, tellement toutes les valeurs que le changement doit être retourné de la fonction et être attribué à nouveau par le visiteur. Ceci peut, cependant, être évité en déclarant des variables pour être globales, qui permet l'accès à une valeur dans une fonction.

Voir également

< ! -- Veuillez n'ajouter aucun lien à d'autres différentes langues. Voir le parler : MATLAB#DADiSP . Pour la discussion sur des références à l'octave (GNU) voir le parler : MATLAB#Octave --> Adjonctions de MATLAB :
Le Simulink est un outil diagramming de bloc graphique pour modeler, simuler et analyser les systèmes dynamiques de multi-domaine.
Le Stateflow est un outil de simulation pour les systèmes entraînés par les événements.

Produits semblables, certains dont être librement et/ou partiellement compatible :
La langue MATLAB est un langage de programmation de rangée .
Le logiciel MATLAB est un ide d'analyse numérique.

Voir la liste de du logiciel d'analyse numérique pour une liste approfondie. < ! -- Veuillez n'ajouter aucun lien à d'autres différentes langues. Voir le parler : MATLAB#DADiSP . Pour la discussion sur des références à l'octave (GNU) voir le parler : MATLAB#Octave -->

.

Random links:Espèces invahissantes | Robert Fergusson | Nuances de noir | Bobby Koch | Nikolay Ivanovich Krylov | MATLAB