Débuter avec MATLAB

 next previous contents
Suivant:Types de données  Précédent: Table des matières
Voir:  Table des matièreIndex - Accueil
 


Présentation et généralités


Une session MATLAB

Pour lancer MATLAB (la présentation qui est faite correspond à une utilisation de MATLAB sur station de travail Unix, mais devrait être très facilement transposable aux autres systèmes) commencez par ouvrir une fenêtre de commande (commandtool) puis déplacez-vous dans votre répertoire (directory) de travail. Tapez la commande matlab. Voici ce que vous devez voir apparaître:
[unix prompt] matlab

                            < M A T L A B (R) >
                (c) Copyright 1984-97 The MathWorks, Inc.
                            All Rights Reserved
                             Version 5.1.0.421
                                May 25 1997


Commands to get started: intro, demo, help help
Commands for more information: help, whatsnew, info, subscribe

>>
Notez le prompt MATLAB (>>) qui indique que MATLAB attend des instructions. Voici un exemple de session MATLAB:
>> A = [ 1 3; 4 2 ]
A =
     1     3
     4     2
>> A*A
ans =
    13     9
    12    16
>> quit

 16 flops.

[unix prompt]
Dans cette session on a défini la matrice

et l'on a calculé son carré. Chaque ligne d'instructions doit se terminer par un retour chariot. La commande pour quitter MATLAB est quit. On veillera dans la mesure du possible à ne pas lancer simultanément plusieurs sessions MATLAB.

  
L'espace de travail

Comme tout langage de programmation MATLAB permet de définir des données variables. Les variables sont définies au fur et à mesure que l'on donne leurs noms (identificateur) et leurs valeurs numériques ou leurs expressions mathématiques. MATLAB ne nécessite pas de déclaration de type ou de dimension pour une variable. Les variables sont stockées dans l'espace de travail (ou workspace ) et peuvent être utilisées dans les calculs subséquents. Pour obtenir la liste des variables actives de l'espace de travail on dispose des commandes who et whos. La commande who affiche le nom des variables actives. La commande whos donne plus d'informations: le nom, la taille du tableau (nombre de lignes et de colonnes) associé, l'espace mémoire utilisé (en Bytes) et la classe des données (principalement double array s'il s'agit d'un tableau de valeurs réelles ou complexes et char s'il s'agit d'un tableau de caractères). La commande clear permet de nettoyer l'espace de travail: toutes les variables sont détruites. Il est possible de ne détruire qu'une partie des variables en tapant clear nom-varnom-var est le nom de la (ou des) variable(s) à détruire.
>> x=2*pi/3; y=sin(x); z=cos(x);
>> A = [ 1 3; 4 2 ]; B = A*A;
>> t = 'bonjour';
>> who

Your variables are:

A         B         t         x         y         z

>> whos
  Name      Size         Bytes  Class

  A         2x2             32  double array
  B         2x2             32  double array
  t         1x7             14  char array
  x         1x1              8  double array
  y         1x1              8  double array
  z         1x1              8  double array

Grand total is 18 elements using 102 bytes

>> clear x y t
>> whos
  Name      Size         Bytes  Class

  A         2x2             32  double array
  B         2x2             32  double array
  z         1x1              8  double array

Grand total is 9 elements using 72 bytes

>> clear
>> who
>>
Il est possible de sauvegarder une session MATLAB  dans un fichier pour une utilisation ultérieure. L'instruction save nom-fic enregistre toutes les variables de l'espace de travail dans le fichier nom-fic.mat. Si aucun nom de fichier n'est précisé, le fichier par défaut est matlab.mat. Il est possible de ne sauver qu'une partie des variables (par exemple seulement la variable contenant le résultat d'un calcul) en utilisant l'instruction savenom-fic nom-varnom-var est le nom de la (ou des) variable(s) à sauvegarder. Attention, seul le contenu des variables est sauvegardé et non pas l'ensemble des instructions effectuées durant la session. Pour ramener dans l'espace de travail les variables sauvegardées dans le fichier nom-fic.mat, taper load nom-fic. Dans l'exemple qui suit on calcule le sinus et le cosinus de 2 pi/3 dans les variables y et z. On sauve ces résultats dans un fichier toto.mat. Après avoir quitté MATLAB on peut vérifier que le fichier toto.mat existe bien mais qu'il ne s'agit pas d'un fichier ascii. Si l'on relance MATLAB et que l'on tape load toto, on peut vérifier que les variables y et z existent bien et ont les valeurs précédentes.
>> x=2*pi/3, y=sin(x), z=cos(x)
x =
    2.0944
y =
    0.8660
z =
   -0.5000
>> save toto y z
>> quit

 6 flops.

[unix prompt] ls
toto.mat
[unix prompt] more y.mat
MATLAB 5.0 MAT-file, Platform: SOL2, Created on: Mon Jul  5 20:42:21 1999
     ` MI      8   e     e       d     `   ` ` `z          ¿ßÿÿÿÿÿü

[unix prompt] matlab

>> load toto
>> who

Your variables are:

 y         z

>> y
y =
    0.8660
>> z
z =
   -0.5000
>> x
??? Undefined function or variable 'x'.

>>
La commande diary permet de sauvegarder l'ensemble d'une session dans un fichier ascii pour un traitement ultérieur (insertion dans un document, impression, ...). Le fichier de sauvegarde par défaut a pour nom diary. On provoque la sauvegarde dans le fichier nom-fic, par l'instruction diarynom-fic. Attention, c'est la commande diary qui déclenche le début de sauvegarde; il est impossible de sauvegarder la partie de la session précédent son appel. Pour arrêter la sauvegarde, taper diary off.
>>  x=2*pi/3; y=sin(x);
>> diary toto
>>  z=cos(x)
z =
   -0.5000
>> diary off
>> t = tan(x)
t =
   -1.7321
>>
Si vous éditez le fichier toto, voici ce que vous verrez:
>>  z=cos(x)
z =
   -0.5000
>> diary off
et rien de plus ...

Obtenir de l'aide

Dans une session MATLAB, il est possible d'obtenir une aide en ligne  sur une commande en tapant help nom-commande. Par exemple,
>> help diary

 DIARY Save text of MATLAB session.
    DIARY file_name  causes a copy of all subsequent terminal input
    and most of the resulting output to be written on the named
    file. DIARY OFF suspends it. DIARY ON turns it back on.
    DIARY, by itself, toggles the diary state.

    Use the functional form of DIARY, such as DIARY('file'),
    when the file name is stored in a string.

>>
Attention, les commandes MATLAB doivent être tapées en minuscules pour être reconnues, même si elles figurent en majuscules dans l'aide en ligne.

On peut également obtenir de l'aide par le biais de la commande doc qui donne accès à une documentation complète au format HTML. Pour quitter cette documentation, cliquer sur Exit Program dans le menu File du navigateur. La commande lookfor permet de rechercher un mot-clé parmi les lignes de commentaires en entête des fonctions MATLAB (ces lignes sont celles affichées par la commnande doc). L'instruction lookfor motclé recherche le mot-clé motclé dans la première ligne de commentaire de toutes les fonctions MATLAB. L'instruction lookfor motclé -all recherche le mot-clé dans toutes les lignes de commentaires en entête des fonctions. Attention le mot-clé doit être en anglais, les commentaires des fonctions MATLAB étant rédigés en anglais. On peut utiliser une phrase comme mot-clé. Il faut alors l'écrire entre guillemets (' '). La commande lookfor retourne le nom la fonction MATLAB (ou des fonctions) où le mot-clé figure dans la première ligne de commentaires. Elle retourne également la ligne de commentaires où figure le mot-clé. Si le mot-clé n'a été trouvé dans aucune ligne de commentaires, MATLAB rend la main sans rien afficher.

>> lookfor determinant
DET    Determinant.    
>> lookfor 'tridiagonal matrix'
LESP   Tridiagonal matrix with real, sensitive eigenvalues.
POISSON Block tridiagonal matrix from Poisson's equation.
TRIDIAG Tridiagonal matrix (sparse).
TRIDIEIG  Find a few eigenvalues of a tridiagonal matrix.
TRIDISOLVE  Solve A*x = b where A is a square, symmetric tridiagonal matrix. 
>> lookfor papillon  
>>

Syntaxe d'une ligne d'instructions

Si une instruction MATLAB est suivie d'un point virgule, le résultat de cette instruction n'est pas affiché. Pour ré-afficher un résultat contenu dans une variable, il suffit de taper le nom de la variable. Le résultat de la dernière instruction exécutée peut être rappelé par la commande ans:
>> A = [ 8 1 6; 3 5 7; 4 2 9];
>> A
A =
     8     1     6
     3     5     7
     4     9     2
>> A*A;
>> ans
ans =
    91    67    67
    67    91    67
    67    67    91
>>
Plusieurs instructions MATLAB peuvent figurer sur une même ligne. Il faut alors les séparer par une virgule ou par un point virgule. D'autre part, si une commande est trop longue pour tenir sur une ligne, il est possible de poursuivre sur la ligne suivante en terminant la ligne par 3 points (...).
>> B = [ 1 3; 4 2 ]; B*B
ans =
    13     9
    12    16
>> x = 1 + 2 + 3 + 4 + 5 + 6 ...
+7 + 8 + 9 + 10
x =
    55
>>
Si la syntaxe de l'instruction soumise est erronée ou si vous demandez à MATLAB d'exécuter une instruction illégale (qui n'a pas de sens mathématique par exemple), vous obtiendez un message d'erreur. Ce message vous indique les sources d'erreurs possibles et doit vous permettre de corriger rapidement votre erreur.
>> A + B
??? Error using ==> +
Matrix dimensions must agree.
>> C = [ 1 2 3; 4 5]
??? Number of elements in each row must be the same.
>> whose
??? Undefined function or variable 'whose'.   
>>
Dans la première instruction, on tente d'effectuer la somme de 2 matrices aux dimensions incompatibles. Dans le second exemple on tente de définir une matrice dont le nombre d'éléments dans chaque ligne diffère. Enfin la troisième instruction est inconnue de MATLAB: il ne s'agit n'y d'une fonction ni d'une variable incorporée ou utilisateur.

Gestion des fichiers du répertoire de travail

Un certain nombre de commandes permettent de gérer les fichiers du répertoire de travail. La commande dir donne la liste des fichiers du répertoire de travail. La commande cdpermet de changer de répertoire de travail. La commande type permet d'afficher le contenu d'un fichier. La commande delete permet de détruire un fichier. Ces commandes s'utilisent de la même manière que les commandes correspondantes d'Unix (ou du DOS). Enfin la commande edit permet d'ouvrir un éditeur de texte. Le choix de l'éditeur a été effectué au moment de l'installation de MATLAB sur votre machine, il vous est donc impossible de choisir votre éditeur favori. Il est également possible d'exécuter des commandes Unix à partir de MATLAB en faisant précéder la commande d'un point d'exclamation (!). Si vous avez effectué les exemples du paragraphe 1.2, deux fichiers toto et toto.mat existent dans votre répertoire de travail. Voici alors quelques exemples d'utilisation des commandes de gestion des fichiers.
>> dir
 .       ..      toto    toto.mat
>> edit toto
>> delete toto
>> !ls
toto.mat
>>

 up next previous contents
Suivant:  Types de données Précédent: Table des matières
Voir:  Table des matièreIndex - Accueil
 

(c) Stéphane Balac - Centre de Mathématiques - INSA de Lyon