SlideShare uma empresa Scribd logo
1 de 86
Baixar para ler offline
Introduction à MATLAB




Prof. Abdellah ADIB   FI-GPE 2011-2012   1
MATLAB
C’est un système interactif de programmation scientifique, pour le
calcul numérique et la visualisation graphique.


Il est basé sur la représentation matricielle des données.

Le nom est dérivée de cette représentation MATLAB =


                  MAT rix LAB oratory
Plan du cours
    Introduction et notions de base du MATLAB
    Les fichiers et la programmation avec MATLAB
    Instructions de contrôles sous MATLAB
    Graphisme sur MATLAB
    Fonctions d’entrée/sortie sous MATLAB


Prof. Abdellah ADIB      FI-GPE 2011-2012          3
Comment programmer ?
x=[2 3 7;             X=inv(x);           X= -0.2424 -0.0303 0.8788
  9 5 2;                                      0.4242 0.3030 -1.7879
  2 1 2];                                     0.0303 -0.1212 0.5152;


Y=sin(X);              Y=0.9093 0.1411 0.6570
                         0.4121 -0.9589 0.9093
                         0.9093 0.8415 0.9093


Prof. Abdellah ADIB               FI-GPE 2011-2012               4
Quelle version ?

Copyright (c) 1984-2011

               by




   The MathWorks, Inc.


Prof. Abdellah ADIB       FI-GPE 2011-2012   5
Qu’est-ce que MATLAB© ?
 Sur le plan de la programmation, le langage MATLAB© est basé sur une
  structure de donnée où l’élément de base est le tableau avec un jeu d’opérations
  adapté à cette entité.
 La syntaxe pour le traitement de variables qui se représentent sous la forme
  de vecteurs ou matrices, dont la dimension n’a pas à être fixée, se trouve
  simplifiée.
 En plus une programmathèque permet des opérations variées et riches en
  fonctionnalités. MATLAB© est un outil puissant qui permet la résolution
  de nombreux problèmes en beaucoup moins de temps qu’il n’en faudrait pour
  les formuler en C ou en Pascal.

Prof. Abdellah ADIB              FI-GPE 2011-2012                                6
Qu’est-ce que MATLAB© ?
 Il consiste en un langage interprété qui s’exécute dans une fenêtre dite
  d’exécution.
 L’intérêt de MATLAB© tient, d’une part, à sa simplicité d’utilisation :
    1) Pas de compilation,
    2) Déclaration implicite des variables utilisées et, d’autre part,
    3) A sa richesse fonctionnelle : arithmétique matricielle et nombreuses
          fonctions de haut niveau dans divers domaines (analyse numérique,
          statistique, commande optimale, représentation graphique, ...).

  Prof. Abdellah ADIB              FI-GPE 2011-2012                           7
Qu’est-ce que MATLAB© ?
Logiciel interactif de calcul scientifique :
   Langage de programmation de haut niveau
   Calcul numérique
   Calcul symbolique
   Calcul matriciel
   Fonctions mathématiques usuelles (sin, exp, log10, …)
   Racines d’un polynôme
   Intégration numérique
   Boites à Outils; e.g. Traitement Numérique du Signal
   Graphiques 1D, 2D & 3D
   Etc.
 Prof. Abdellah ADIB           FI-GPE 2011-2012             8
Domaines couverts par MATLAB©




Prof. Abdellah ADIB   FI-GPE 2011-2012   9
Autres atouts de MATLAB©
    Ordinateur = super calculatrice
    Apprentissage facile, commandes intuitives
    Moins de C, Pascal, Fortran, Basic, etc.
    Inclusion des graphiques dans les documents
    Interaction avec des programmes externes
    Boites à outils couvrants une multitude de disciplines
    Une aide en ligne
    Sauvegarde de l’environnement du travail
    Etc. …
Prof. Abdellah ADIB          FI-GPE 2011-2012                 10
Fenêtre de commandes MATLAB©
   Matlab doit être installé, pour lancer l’exécution il faut effectuer un double clic
    sur l’icône de matlab.


Set path
                                                                         Fenêtre de
                                                                         Commandes
Rappel ligne
de commande




   Prof. Abdellah ADIB             FI-GPE 2011-2012                               11
Aide




Il est à noter que toutes les commandes sont en anglais et l’aide en ligne
également !
 Prof. Abdellah ADIB          FI-GPE 2011-2012                         12
Aide




Les commandes Matlab© doivent toujours être tapées en minuscules même
si dans l'aide en ligne elles apparaissent en majuscules.
 Prof. Abdellah ADIB       FI-GPE 2011-2012                     13
Types de données
 Dans Matlab il y a un seul type de données: le type de matrice
  (matrix).

 Tout est matrice       →   un nombre est une matrice carrée d’ordre
  1.

 Pas de déclaration de type.

 L’utilisation ne s’occupe pas de l’allocation mémoire.

 Les matrices et vecteurs peuvent être redimensionnées.


 Prof. Abdellah ADIB           FI-GPE 2011-2012                   14
Variables MATLAB
Variable :
  - Matrice                m x n,         m, n >1,
  - Vecteur               1 x n,          n >1,
  - Scalaire              1x1
Nombres ou chaînes de caractères :
  - Nom_de_variable : aBz23k...

                    - 1er caractère = lettre
                    - 19 premiers caractères reconnus
                    -Aa
Prof. Abdellah ADIB        FI-GPE 2011-2012             15
Variables MATLAB
 Les noms des variables et de fonctions sont composés de
  lettres et chiffres.

 Matlab fait la distinction entre les majuscules et
  minuscules, ainsi mavar, MAVAR et MAvar sont des
  variables différentes.

 Si la variable existe déjà, le contenu est écrasé par une
  nouvelle valeur affectée à cette variable.


 Prof. Abdellah ADIB        FI-GPE 2011-2012             16
Caractères et variables réservés
                           Caractères spéciaux
 =        assignment statement
 [       used to form vectors and matrices
 ]       see [
 (       arithmetic expression precedence
 )       see (
 .       decimal point
 ...     continue statement to the next line
 ,       separate subscripts and function arguments
 ;       end rows, suppress printing
 %       comments
 :       subscripting, vector generation
 !       execute operating system command

Prof. Abdellah ADIB                FI-GPE 2011-2012   17
Fonctions d’usage général
  help                help facility
  demo                demo
  who                 list variables in memory
  what                 list M-files on disk
  size                row and column dimensions
  length               vector length
  clear               clear workspace
  computer            type of computer
  quit                quit
  exit                exit


Prof. Abdellah ADIB         FI-GPE 2011-2012      18
Caractères et variables réservés
                               Valeurs spéciales
   ans           answer when expression is not assigned
   eps           floating point precision
   pi          
   i,j         -1
   Inf          
   NaN           not-a-Number
   clock         wall clock
   date          date
   flops         floating point operation count
   nargin       number of function input arguments
   nargout      number of function output arguments


Prof. Abdellah ADIB                   FI-GPE 2011-2012    19
Modes de Programmation

                      Interactif

Prof. Abdellah ADIB    FI-GPE 2011-2012   20
Mode interactif




Prof. Abdellah ADIB       FI-GPE 2011-2012   21
Prof. Abdellah ADIB   FI-GPE 2011-2012   22
Vecteurs ou tableaux à 1 dimension
 Le moyen le plus simple de saisir un vecteur est d’entrer ses
  éléments en les séparant par des blancs ou par des virgules

   » x=[ 6 4 7]
     x=
       6      4         7

 Autre façon de saisir un vecteur ligne

   » x=[6, 4, 7]
      x=
       6       4        7

  Prof. Abdellah ADIB       FI-GPE 2011-2012                23
Vecteurs ou tableaux à 1 dimension
 Ce vecteur est considéré comme une matrice à une ligne et
  trois colonnes

  » size(x)                 Ou bien           » [m n]=size(x)
    ans =                                        m=1
       1               3                         n=3


 La longueur d’un tableau, ou bien sa dimension

  » longeur=length(x)
    longeur= 3


 Prof. Abdellah ADIB       FI-GPE 2011-2012                     24
Opérateurs arithmétiques
                   “Matrix” et “Array”
Opérateurs “Matrix”                       Opérateurs “Array”
 +        addition                         +      addition
 -       subtraction                       -      subtraction
 *       multiplication                    .*      multiplication
 /       right division                    ./      right division
        left division                     .      left division
 ^       power                             .^      power
 ‘       conjugate transpose               .‘      transpose

                                       Arithmétique élément-par-élément
Prof. Abdellah ADIB            FI-GPE 2011-2012                       25
Vecteurs ou tableaux à 1 dimension
 Si on veut créer le vecteur v=[6 4 7 1 2 8], on peut utiliser le
  vecteur x précédent

  » v=[x 1 2 8]        %Concaténation
  v=
      6      4         7     1         2       8
 Dans Matlab, les indices d’un tableau commencent à 1. Pour
  récupérer une composante d’un vecteur, il faut spécifier son
  indice entre parenthèses:

  » v(2)
  ans=
      4
 Prof. Abdellah ADIB        FI-GPE 2011-2012                  26
Vecteurs ou tableaux à 1 dimension
 L’addition et la soustraction de vecteur de mêmes dimensions se font
  élément par élément
          » x=[4 3]; y=[5 7]; x-y
          ans=
                 -1      -4
           » x+y
          ans=
                 9       10
 Transposé conjugué < ’> et transposé d’un vecteur < .’>
          » tx = x ’
            tx=
                 4
                 3
  Prof. Abdellah ADIB          FI-GPE 2011-2012                   27
Vecteurs ou tableaux à 1 dimension
 Combinaison linéaire de deux vecteurs de mêmes dimensions se font
  élément par élément
          » x=[4 3]; y=[5 7]; 2*x - 4*y
          ans=
                  -12    -22
           » 4*x + 3*y.^2
          ans=
                  91     159
 Division de deux vecteurs
          » x/y
            tx=
                   4
                   3
  Prof. Abdellah ADIB          FI-GPE 2011-2012                28
Vecteurs ou tableaux à 1 dimension
» q = 4 : 10
  q=
       4       5       6       7       8    9      10
» q(end)
  ans =
           10
» q(end-4 : end)
  ans =
           6       7       8       9       10
» q(endq(end-2 : end)
  ans =
           8       9       10
  Prof. Abdellah ADIB                           FI-GPE 2011-2012   29
Fonctions opérant sur des vecteurs
 sum : somme des composants d’un vecteur
        » sum(x)           % x=[4 3];
           ans=
                      7
 prod : produit des composants d’un vecteur
        » prod(y)=
           ans=
                      70

Prof. Abdellah ADIB             FI-GPE 2011-2012   30
Fonctions opérant sur des vecteurs
 sqrt : racines carrées des composants d’un vecteur
        » sqrt(x)
           ans=
                      2.000    1.7321
 mean : moyenne des composantes d’un vecteur
        » mean(x)
           ans=
                      2.3333

Prof. Abdellah ADIB            FI-GPE 2011-2012        31
Fonctions opérant sur des vecteurs
 find : recherche les indices et les valeurs des éléments
  non nuls
        » X = [1 0 4 -3 0 0 0 8 6]; indices = find(X)
           indices =
                   1      3   4      8    9

        » find(X > 2)
           ans=
                      3   8   9

Prof. Abdellah ADIB               FI-GPE 2011-2012      32
Fonctions opérant sur des vecteurs
 sort : ordonne les éléments du                  vecteur x par ordre
  croissant
      » sort(x)     % x=[3 5 1 9 2                -2 51 -8]
       ans=
              -8 -2    1   2   3                  5    9 51
 linspace : génère un vecteur de                 N points équiespacés
  entre deux points donnés
        » y = linspace(0,1,6)
            y=
                      Columns 1 through 6
                      0 0.2000 0.4000 0.6000 0.8000            1.0000
Prof. Abdellah ADIB            FI-GPE 2011-2012                     33
Fonctions opérant sur des vecteurs
 fliplr : fait tourner le vecteur de droite à gauche
        » fliplr(x)             % x=[3 5 1 9 2 -2 51 -8]
           ans=
                      -8   51      -2     2     9    1   5   3
 flipud : fait tourner le vecteur du bas vers le haut
        » y = flipud([1; 2; 9])
            y=
                      9
                      2
                      1
Prof. Abdellah ADIB               FI-GPE 2011-2012               34
Prof. Abdellah ADIB   FI-GPE 2011-2012   35
Matrices ou tableaux à 2 dimensions
 Pour saisir une matrice, les lignes sont séparées par un
  point virgule
        » x= [0 1 2; 3 4 5]
            x=
                      0   1       2
                      3   4       5

 Ou bien en séparant les lignes par des retours à la ligne
        » x= [0 1 2;
              345]
Prof. Abdellah ADIB           FI-GPE 2011-2012            36
Matrices ou tableaux à 2 dimensions
 Dimensions d’une matrice x:
       » [ m n ]=size(x)
           m=
                      2
           n=
            3
 Accès à un élément d’une matrice
       » x(2,1)
         ans=
                      3
Prof. Abdellah ADIB        FI-GPE 2011-2012   37
Matrices particulières
 Matrice identité (matrice carrée) :
    » I=eye(3)
      I=
           1 0 0
           0 1 0
           0 0 1
 Matrice unité
        » U=ones(2,3)
          U=
             1 1 1
             1 1 1
 Prof. Abdellah ADIB          FI-GPE 2011-2012   38
Matrices particulières
 Matrice nulle :
        » Z=zeros(3)
           Z=
           0 0 0
           0 0 0
           0 0 0
 Matrice aléatoire (les               éléments   sont   générés
  aléatoirement entre 0 et 1)
        » A=rand(1,4)
          A=
             0.6597 0.1458 0.2564 0.2131
 Prof. Abdellah ADIB          FI-GPE 2011-2012                 39
Formes particulières d’initialisation
       » a= 1:5
          a=
                 1 2 3 4 5

       » x= 0: pi/4: pi
         x=
             0 0.7854     1.5708        2.3562   3.1416

       » Em= 15: -3: 1
         Em=
            15 12 9          6   3

Prof. Abdellah ADIB       FI-GPE 2011-2012                40
Formes particulières d’accès
 » G=[2 1 6 -5; 3 9 11 4; 6 8 1 36; -1 5 -7 9; 9 5 3 1 ];

 » G(2:3,4)’
     ans=
       4 36
 » G([1 3 5],[2 3 4])
     ans=
       1         6    -5
       8         1    36
       5         3     1
Prof. Abdellah ADIB        FI-GPE 2011-2012                 41
Prof. Abdellah ADIB   FI-GPE 2011-2012   42
Exemple 1
Donner les valeurs de la fonction suivante
                      y = (x+2)2(x3+1)
pour des valeurs de x entre -1 et 3 avec un pas de 0.1

 Solution :

  » x=[-1:0.1:3];
  » y = ((x+2).^ 2) .* ((x.^3)+1);
Prof. Abdellah ADIB     FI-GPE 2011-2012                 43
Exemple 2
Construire la fonction
                         z = s2/(s3 + 1)
pour 200 valeurs de x entre -3 et 40.

 Solution :

  » s=linspace(-3,40,200);
  » y = s.^2./(s.^3 + 1);

Prof. Abdellah ADIB       FI-GPE 2011-2012   44
Exemple 3
Donner 50 valeurs du polynôme
                         y = x4 + x2 - 3
Entre x = -2 et x = 2.

 Solution :

  » x=linspace(-2,2,50);
  » c = [1 0 1 0 -3];
  » y = polyval(c,x);
Prof. Abdellah ADIB       FI-GPE 2011-2012   45
Exemple 4
Soit la matrice F=[1 2 3; 4 5 6; 7 8 9], éliminer la deuxième
colonne puis la première ligne

Solution :

» F(:,2) = []                 » F(1,:) = []
    F=                            F=
         1 2 3                         4 5 6
         4 5 6                         7 8 9
         7 8 9

Prof. Abdellah ADIB     FI-GPE 2011-2012                   46
Nombres complexes
» i^2
ans=
          -1
» j^2
ans=
      -1
» a=3+2i
a=
      3.0000 + 2.0000i
» w=r+exp(2*j*teta);
» w=[1 2 8.3 sqrt(6)]+0,3*i*ones(1,4);
 Prof. Abdellah ADIB        FI-GPE 2011-2012   47
Fonctions d'arrondis
round(x) : entier le plus proche de x,

     » round(1.8356)                    » round(3.4356)
        ans=                               ans=
                   2                           3
floor(x) : arrondi par défaut,

     » floor(3.9)
        ans=
                   3
 Prof. Abdellah ADIB        FI-GPE 2011-2012              48
Fonctions d'arrondis
ceil(x) : arrondi par excès,
     » ceil(1.8356)                     » ceil(3.4356)
        ans=                              ans=
                   2                             4

fix(x) : arrondi par défaut un réel positif et par excès un réel
négatif.
     » fix(3.9)                      » fix(-2,1)
        ans=                           ans=
                   3                             -2
 Prof. Abdellah ADIB        FI-GPE 2011-2012                   49
Format : La manière d’apparition des nombres
» s = [1/2 1/3 pi];
» format short; s
s=
    0.5000 0.3333 3.1416
» format long; s
s=
    0.50000000000000      0.33333333333333   3.14159265358979
» format rat; s
s=
    1/2      1/3     355/113
» format bank; s
s=
     0.50    0.33   3.14
 Prof. Abdellah ADIB     FI-GPE 2011-2012                50
Prof. Abdellah ADIB   FI-GPE 2011-2012   51
Exemple
 Créer une matrice 4x2 tous zéros et la stocker dans une
  variable. Puis, remplacer la deuxième rangée dans la matrice par
  un vecteur se composant des 3 et des 6.
 Trouver une manière efficace de reproduire la matrice suivante :
mat =
         7 8          9 10
        12 10         8 6
Puis, donner les expressions qui, pour la matrice mat de,
     1. se rapporter à la deuxième rangée entière
     2. se rapporter aux deux premières colonnes

Prof. Abdellah ADIB          FI-GPE 2011-2012                 52
Exemple
 Créer un vecteur de variable vect ; il peut avoir n'importe quelle
    longueur. Puis, écrire les instructions qui permettent de stocker
    la première moitié du vecteur dans une variable et la deuxième
    moitié dans une autre variable. S'assurer que vos instructions
    d'affectation sont générales, et opèrent correctement même si
    le vect a un nombre pair ou impair d'éléments. (Conseil :
    Employer une fonction d'arrondis telle que la difficulté.).



Prof. Abdellah ADIB         FI-GPE 2011-2012                      53
Prof. Abdellah ADIB   FI-GPE 2011-2012   54
L'éditeur de scripts MATLAB




Prof. Abdellah ADIB   FI-GPE 2011-2012   55
Fonctions “usager” de type “script”
Fonction sans argument
Variables globales
%*****************************%
%* pivot_x.m                *%
%*****************************%
echo off
x=[1 2 3 4]
x=fliplr(x)
» pivot_x
x=
   1234
x=
   4321
 Prof. Abdellah ADIB      FI-GPE 2011-2012   56
Fonctions “usager” de type “function”
Les fonctions m-files sont des vrais sous programmes; puisque
elles utilisent des arguments I et/ou O.
Variables autres que les I/O sont locales à la fonction
Syntaxe générale :


function [arguments de sortie] = Nom_fonction (arguments d’entrée)




 Prof. Abdellah ADIB        FI-GPE 2011-2012                     57
Exemple de “function”
                            Nom de
      Un seul argument de                 la fonction                              Arguments
      sortie, pas de [ ]                                                           d’entrée
                              function y = plptnb(n1,n2)                       1- Commentaire,
1er ligne, doit contenir      % Retourne le plus petit de n1 ou n2             qui apparaîtra en
   la définition de la        %Notes : Un exemple de fonction                  utilisant help
        fonction              y = n2;                                          2- Les informations
                              if n1 < n2                                       dans Notes
          Le corps de             y=n1;                                        n’apparaîtrons
          la fonction         end;                                             jamais
                              Return;


Utilisation de            » a=-2; b=3;                               » plptnb(-2, 3)
la fonction               » plptnb(a,b)                              » ans =
                          » ans =                                        -2
                              -2
    Prof. Abdellah ADIB                    FI-GPE 2011-2012                                    58
Organisation d'un programme
Toute bonne programmation repose sur l'écriture d'un script
principal qui fait appel à des fonctions autonomes. Cela permet :

   • d'améliorer la lisibilité

   • de tester indépendamment des parties de programmation

   • d'augmenter le degré de généralité (utilisation d'une même
   fonction à divers endroits du programme, voire réutilisation
   des fonctions dans d'autres applications)

 Prof. Abdellah ADIB         FI-GPE 2011-2012                 59
Structure d’un Bon programme




Comme dans l'exemple ci-dessus, le nom du script attaché à une fonction
doit obligatoirement porter le nom de la fonction avec l'extension.m.
 Prof. Abdellah ADIB        FI-GPE 2011-2012                       60
Prof. Abdellah ADIB   FI-GPE 2011-2012   61
Exemples
Écrire une fonction qui calculera le volume d'une sphère creuse, on adoptera la
formule suivante :
                                    4
                                     3
où   est le rayon intérieur et   est le rayon extérieur.


Écrire une fonction qui permet de construire la matrice suivante :

                                   2   2   2   2   2   2   2
                                   3   3   3   3   3   3   3
                                   7   7   7   7   7   7   7
                                   9   9   9   9   9   9   9
                                   4   4   4   4   4   4   4

 Prof. Abdellah ADIB              FI-GPE 2011-2012                                62
Prof. Abdellah ADIB   FI-GPE 2011-2012   63
Opérateurs logiques
 Les opérateurs logiques combinent des expressions
  booléennes :




 En terme numérique, tout nombre non nul est considéré
  comme vrai




Prof. Abdellah ADIB         FI-GPE 2011-2012          64
Liste des opérateurs

 & : ET logique élément par élément


 | : OU logique élément par élément


 ~ : NON (négation logique de l’opérande)




Prof. Abdellah ADIB         FI-GPE 2011-2012   65
ET logique
Cas de deux expressions logiques
   x = 1; y = 3;
   w = -1; z = 10;
   (x>y) & (w>z)          0 (FAUX)
   (x>y) & (w<z)          0 (FAUX)
   (x<y) & (w<z)          1 (VRAI)
   x & y est équivalent à (x ~ =0)&(y ~= 0)             1 (VRAI)
Cas de deux vecteurs

   u = [1 0 2 3 0 5]; v = [5 6 1 0 0 7];
   u&v
   1       0     1        0      0     1
 (VRAI     FAUX        VRAI   FAUX   FAUX VRAI)

 Prof. Abdellah ADIB                 FI-GPE 2011-2012              66
Opérateur OU
Cas de deux expressions logiques
   x = 1; y = 3;
   w = -1; z = 10;
   (x>y) | (w>z)          0 (FAUX)
   (x>y) | (w<z)          1 (VRAI)
   (x<y) | (w<z)          1 (VRAI)
   x | y (est équivalent à (x ~ =0) | (y ~= 0))         1 (VRAI)
Cas de deux vecteurs

   u = [1 0 2 3 0 5]; v = [5 6 1 0 0 7];
   u|v
   1       1     1        1      0     1
 (VRAI      VRAI       VRAI   VRAI    FAUX VRAI)

 Prof. Abdellah ADIB                 FI-GPE 2011-2012              67
Opérateur NON (négation)
Négation d’une expression logique
   x = 1; y = 3;
    ~(x>y)                    1 (VRAI)
    ~(x<y)                    0 (FAUX)
    ~(x==y)                   1 (VRAI)
Négation d’un scalaire
   ~y équivalent a y == 0                    1 (VRAI)

Négation d’un vecteur
   ~u (u = [1 0 2 3 0 5])
   équivalent a u == 0
   0       1      0     0                1       0
 (FAUX      VRAI       FAUX    FAUX VRAI FAUX)
 Prof. Abdellah ADIB                FI-GPE 2011-2012    68
Prof. Abdellah ADIB   FI-GPE 2011-2012   69
Les instructions de contrôle
 Les principales instructions de contrôle sous Matlab sont :
     Instructions       IF … ELSEIF … ELSE …
                              Instructions sélectives
     Instructions       SWITCH … CASE … OTHERWISE…
                                   Chois ventilés
     Instructions       WHILE … FOR … (Boucles)
                              Instructions répétitives
     Instructions       CONTINUE …
                   Passage à l’itération suivante dans une boucle
     Instructions       BREAK …
                         Arrêt de l’exécution d’une boucle
 Prof. Abdellah ADIB              FI-GPE 2011-2012                  70
Prof. Abdellah ADIB   FI-GPE 2011-2012   71
Instruction sélective IF
   La sélection if

        Syntaxe :

                                Expression logique dont le résultat est soit 1 (vrai) ou 0 si (faux),


               if condition
Mots clé
                  séquence d’instructions                  Corps de la sélection
Fin de la
sélection
               end




    Prof. Abdellah ADIB               FI-GPE 2011-2012                                              72
Instruction sélective IF … ELSE
   La sélection if … else … end

        Syntaxe :

                               Expression logique dont le résultat est soit 1 (vrai) ou 0 si (faux),


               if condition
Mots clé
                  séquence d’instructions 1               Action
Fin de la
sélection
               else

                  séquence d’instructions 2               Alternative
               end

    Prof. Abdellah ADIB              FI-GPE 2011-2012                                              73
Instruction sélective IF … ELSEIF … ELSE
 La sélection if … elseif … else … end
     Syntaxe :

            if condition

               séquence d’instructions 1           Action

            elseif

               séquence d’instructions 2           Alternative 1
            Else

               séquence d’instructions 3           Alternative 2
            end
 Prof. Abdellah ADIB            FI-GPE 2011-2012                   74
Exemple
Ecrire une fonction qui cherche la mention en fonction de la moyenne obtenue
            function m = mention(moy)
            % Mention en fonction de la moyenne
                    if moy>=16
                            m=’très bien’;
                    elseIf moy>=14
                            m=’bien’;
                    elseIf moy>=12
                            m=’assez bien’;
                    elseIf moy>=10
                            m=’passable’;
                    else
                            m=’Ajourné’;
                    end
  Prof. Abdellah ADIB          FI-GPE 2011-2012                         75
Prof. Abdellah ADIB   FI-GPE 2011-2012   76
Instruction répétitive FOR
   La sélection for … end

        Syntaxe :

                                     i variable appelée indice de la boucle


               for i = ind_debut : ind_fin
Mots clé
                  séquence d’instructions               Corps de la boucle
Fin de la
 boucle
               end




    Prof. Abdellah ADIB             FI-GPE 2011-2012                          77
Instruction répétitive SWITCH
 La sélection switch … case c1 … case cn … otherwise … end
     Syntaxe :
            switch var
              case c1
                 séquence d’instructions 1
              ...                                           n choix ventilés
                case cn
                   séquence d’instructions n
              otherwise
                 séquence d’instructions par défaut
            end

var expression ou variable à évaluer, c1 … cn constantes représentant les possibilités
d’évaluation de var.
 Prof. Abdellah ADIB              FI-GPE 2011-2012                               78
Prof. Abdellah ADIB   FI-GPE 2011-2012   79
Graphiques
» x=0:0.05:(2*pi);
» y=exp(-x).*sin(x);
» plot(x,y);




Prof. Abdellah ADIB     FI-GPE 2011-2012   80
Graphe plus lisible
» axis([0 (2*pi) -0.1 0.4]);
» title ('Exemple de graphique');
» xlabel(‘Abscisse');                          Exemple de graphique
» ylabel(‘Ordonnee');
» grid;
                          Ordonnee




                                                        Abscisse
   Prof. Abdellah ADIB               FI-GPE 2011-2012                 81
Graphe avec plusieurs courbes superposées
» y1=exp(-2*x).*sin(x);
» y2=exp(-3*x).*sin(x);
» y3=exp(-4*x).*sin(x);
» plot(x,y,'-',x,y1,'-.',x,y2,'*',x,y3,'o‘ );




 Prof. Abdellah ADIB   FI-GPE 2011-2012     82
Graphe avec plusieurs courbes séparées
»  subplot(2,2,1), plot(x,y), title('y');
» subplot(2,2,2), plot(x,y1), title('y1');
» subplot(2,2,3), plot(x,y2), title('y2');
» subplot(2,2,4), plot(x,y3), title('y3');




    Prof. Abdellah ADIB             FI-GPE 2011-2012   83
Graphe 3-D
Supposons, par exemple que l'on veuille représenter
la surface définie par la fonction z=sin(xy) sur le
carré suivant [-p/2,p/2]x[-p/2,p/2] à l'aide d'une
grille de points 31x31.

On utilise la séquence de commandes :

[xi,yi]=meshgrid(-pi/2:pi/30:pi/2); %(génération d'une
                                          grille régulière)
zi=sin(xi.*yi);
surf(xi,yi,zi,zi);   %(affichage de la surface)

   Prof. Abdellah ADIB              FI-GPE 2011-2012          84
À retenir

>> Variable MATLAB matrice
>> Opérateurs “matrix” et “array”

>> Fichiers exécutables “.m” type “script” et “function”;

>> Fichiers binaires “.mat” pour échange de données

>> Extensions (toolboxes)




 Prof. Abdellah ADIB      FI-GPE 2011-2012                  85
RESTE MAINTENANT A APPRENDRE
                LA VRAI PROGRAMMATION
                      SOUS MATLAB
                           !!!!!!!!!

Prof. Abdellah ADIB     FI-GPE 2011-2012   86

Mais conteúdo relacionado

Mais procurados

TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binairesSana Aroussi
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationLilia Sfaxi
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI Mansouri Khalifa
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
rapport de stage ouvier génie civil
rapport de stage ouvier génie civilrapport de stage ouvier génie civil
rapport de stage ouvier génie civilaladin brinsi
 
Méthodologie 2 Track Unified Process
Méthodologie 2 Track Unified ProcessMéthodologie 2 Track Unified Process
Méthodologie 2 Track Unified ProcessZakaria Bouazza
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Cours et TP Ms Project
Cours et TP Ms ProjectCours et TP Ms Project
Cours et TP Ms Projecthindif
 
Les règles de passage
Les règles de passageLes règles de passage
Les règles de passagemarwa baich
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrigeAmineMouhout1
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresSana Aroussi
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Mansouri Khalifa
 

Mais procurados (20)

TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Chapitre 5 arbres binaires
Chapitre 5 arbres binairesChapitre 5 arbres binaires
Chapitre 5 arbres binaires
 
Chp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'UtilisationChp2 - Diagramme des Cas d'Utilisation
Chp2 - Diagramme des Cas d'Utilisation
 
Cours : les listes chainées Prof. KHALIFA MANSOURI
Cours : les listes chainées  Prof. KHALIFA MANSOURI Cours : les listes chainées  Prof. KHALIFA MANSOURI
Cours : les listes chainées Prof. KHALIFA MANSOURI
 
UML
UMLUML
UML
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
rapport de stage ouvier génie civil
rapport de stage ouvier génie civilrapport de stage ouvier génie civil
rapport de stage ouvier génie civil
 
Slide matlab
Slide matlab Slide matlab
Slide matlab
 
Méthodologie 2 Track Unified Process
Méthodologie 2 Track Unified ProcessMéthodologie 2 Track Unified Process
Méthodologie 2 Track Unified Process
 
Cours java
Cours javaCours java
Cours java
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Cours et TP Ms Project
Cours et TP Ms ProjectCours et TP Ms Project
Cours et TP Ms Project
 
Les règles de passage
Les règles de passageLes règles de passage
Les règles de passage
 
Uml Cas Utilisation introduction
Uml Cas Utilisation introductionUml Cas Utilisation introduction
Uml Cas Utilisation introduction
 
Exercices uml-corrige
Exercices uml-corrigeExercices uml-corrige
Exercices uml-corrige
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
Chapitre ii circuits combinatoires
Chapitre ii circuits combinatoiresChapitre ii circuits combinatoires
Chapitre ii circuits combinatoires
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Tp 1 introduction à matlab
Tp 1 introduction à matlabTp 1 introduction à matlab
Tp 1 introduction à matlab
 
Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI Cours : les arbres Prof. KHALIFA MANSOURI
Cours : les arbres Prof. KHALIFA MANSOURI
 

Destaque

charpante metalique 3 2-pannes
charpante metalique 3 2-pannescharpante metalique 3 2-pannes
charpante metalique 3 2-pannesmassinissachilla
 
charpante metalique 3 4-potelets
charpante metalique 3 4-poteletscharpante metalique 3 4-potelets
charpante metalique 3 4-poteletsmassinissachilla
 
charpante metalique 3 3-lisses de bardages
charpante metalique 3 3-lisses de bardagescharpante metalique 3 3-lisses de bardages
charpante metalique 3 3-lisses de bardagesmassinissachilla
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab Hajer Dahech
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabMariem ZAOUALI
 
Dalle nervuré
Dalle nervuréDalle nervuré
Dalle nervuréLeila Lyla
 
Calcul d'un hangar
Calcul d'un hangar Calcul d'un hangar
Calcul d'un hangar GENICIMO
 
Cuestiones problemas acido_base
Cuestiones problemas acido_baseCuestiones problemas acido_base
Cuestiones problemas acido_baseescuelatic2011
 
10 puestos involucrados ideales en el desarrollo de apps.
10 puestos involucrados ideales en el desarrollo de apps.10 puestos involucrados ideales en el desarrollo de apps.
10 puestos involucrados ideales en el desarrollo de apps.rafaecheve
 
40 photos historiques en noir et blanc
40 photos historiques en noir et blanc40 photos historiques en noir et blanc
40 photos historiques en noir et blancAndromede56
 
Palacio de circe
Palacio de circePalacio de circe
Palacio de circemteranm
 
Nos offres Smartphones & Tablettes - Novembre 2014
Nos offres Smartphones & Tablettes - Novembre 2014Nos offres Smartphones & Tablettes - Novembre 2014
Nos offres Smartphones & Tablettes - Novembre 2014Maroc Telecom
 
Berón, del rio. textos en plural
Berón, del rio. textos en pluralBerón, del rio. textos en plural
Berón, del rio. textos en pluralLoreDelRio
 

Destaque (20)

charpante metalique 3 2-pannes
charpante metalique 3 2-pannescharpante metalique 3 2-pannes
charpante metalique 3 2-pannes
 
charpante metalique 3 4-potelets
charpante metalique 3 4-poteletscharpante metalique 3 4-potelets
charpante metalique 3 4-potelets
 
charpante metalique 3 3-lisses de bardages
charpante metalique 3 3-lisses de bardagescharpante metalique 3 3-lisses de bardages
charpante metalique 3 3-lisses de bardages
 
Structure metalique
Structure metaliqueStructure metalique
Structure metalique
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec Matlab
 
Planchers 02
Planchers 02Planchers 02
Planchers 02
 
Dalle nervuré
Dalle nervuréDalle nervuré
Dalle nervuré
 
Dalle
DalleDalle
Dalle
 
soutenance
soutenancesoutenance
soutenance
 
cours de Matlab
 cours de Matlab cours de Matlab
cours de Matlab
 
Planchers 05
Planchers 05Planchers 05
Planchers 05
 
Calcul d'un hangar
Calcul d'un hangar Calcul d'un hangar
Calcul d'un hangar
 
Cuestiones problemas acido_base
Cuestiones problemas acido_baseCuestiones problemas acido_base
Cuestiones problemas acido_base
 
Fútbol
FútbolFútbol
Fútbol
 
10 puestos involucrados ideales en el desarrollo de apps.
10 puestos involucrados ideales en el desarrollo de apps.10 puestos involucrados ideales en el desarrollo de apps.
10 puestos involucrados ideales en el desarrollo de apps.
 
40 photos historiques en noir et blanc
40 photos historiques en noir et blanc40 photos historiques en noir et blanc
40 photos historiques en noir et blanc
 
Palacio de circe
Palacio de circePalacio de circe
Palacio de circe
 
Nos offres Smartphones & Tablettes - Novembre 2014
Nos offres Smartphones & Tablettes - Novembre 2014Nos offres Smartphones & Tablettes - Novembre 2014
Nos offres Smartphones & Tablettes - Novembre 2014
 
Berón, del rio. textos en plural
Berón, del rio. textos en pluralBerón, del rio. textos en plural
Berón, del rio. textos en plural
 

Semelhante a Cours matlab gpe

Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfTarakBenslimane
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfTarakBenslimane
 
Cours 1 bases de matlab 2eme annees
Cours 1   bases de matlab 2eme anneesCours 1   bases de matlab 2eme annees
Cours 1 bases de matlab 2eme anneesTarik Taleb Bendiab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1fouadDD
 
Support matlab st
Support matlab stSupport matlab st
Support matlab stN NASRI
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlabN NASRI
 
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_fauxIEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_fauxRuau Mickael
 
Conception de base_de_l_algorithme
Conception de base_de_l_algorithmeConception de base_de_l_algorithme
Conception de base_de_l_algorithmemustapha4
 
Explication du micro
Explication du microExplication du micro
Explication du microlouminho
 
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_fauxIEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_fauxRuau Mickael
 
mis
mismis
misISIG
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11Microsoft
 

Semelhante a Cours matlab gpe (20)

Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdf
 
Introduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdfIntroduction à MATLAB et Simulink.pdf
Introduction à MATLAB et Simulink.pdf
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 
Cours 1 bases de matlab 2eme annees
Cours 1   bases de matlab 2eme anneesCours 1   bases de matlab 2eme annees
Cours 1 bases de matlab 2eme annees
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Support matlab st
Support matlab stSupport matlab st
Support matlab st
 
Tp2 matlab
Tp2 matlab Tp2 matlab
Tp2 matlab
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlab
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
syntax-matlab.pdf
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdf
 
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_fauxIEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
 
Conception de base_de_l_algorithme
Conception de base_de_l_algorithmeConception de base_de_l_algorithme
Conception de base_de_l_algorithme
 
Matlab
MatlabMatlab
Matlab
 
Explication du micro
Explication du microExplication du micro
Explication du micro
 
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_fauxIEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
 
mis
mismis
mis
 
courstic2.pptx
courstic2.pptxcourstic2.pptx
courstic2.pptx
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11
 

Cours matlab gpe

  • 1. Introduction à MATLAB Prof. Abdellah ADIB FI-GPE 2011-2012 1
  • 2. MATLAB C’est un système interactif de programmation scientifique, pour le calcul numérique et la visualisation graphique. Il est basé sur la représentation matricielle des données. Le nom est dérivée de cette représentation MATLAB = MAT rix LAB oratory
  • 3. Plan du cours Introduction et notions de base du MATLAB Les fichiers et la programmation avec MATLAB Instructions de contrôles sous MATLAB Graphisme sur MATLAB Fonctions d’entrée/sortie sous MATLAB Prof. Abdellah ADIB FI-GPE 2011-2012 3
  • 4. Comment programmer ? x=[2 3 7; X=inv(x); X= -0.2424 -0.0303 0.8788 9 5 2; 0.4242 0.3030 -1.7879 2 1 2]; 0.0303 -0.1212 0.5152; Y=sin(X); Y=0.9093 0.1411 0.6570 0.4121 -0.9589 0.9093 0.9093 0.8415 0.9093 Prof. Abdellah ADIB FI-GPE 2011-2012 4
  • 5. Quelle version ? Copyright (c) 1984-2011 by The MathWorks, Inc. Prof. Abdellah ADIB FI-GPE 2011-2012 5
  • 6. Qu’est-ce que MATLAB© ?  Sur le plan de la programmation, le langage MATLAB© est basé sur une structure de donnée où l’élément de base est le tableau avec un jeu d’opérations adapté à cette entité.  La syntaxe pour le traitement de variables qui se représentent sous la forme de vecteurs ou matrices, dont la dimension n’a pas à être fixée, se trouve simplifiée.  En plus une programmathèque permet des opérations variées et riches en fonctionnalités. MATLAB© est un outil puissant qui permet la résolution de nombreux problèmes en beaucoup moins de temps qu’il n’en faudrait pour les formuler en C ou en Pascal. Prof. Abdellah ADIB FI-GPE 2011-2012 6
  • 7. Qu’est-ce que MATLAB© ?  Il consiste en un langage interprété qui s’exécute dans une fenêtre dite d’exécution.  L’intérêt de MATLAB© tient, d’une part, à sa simplicité d’utilisation : 1) Pas de compilation, 2) Déclaration implicite des variables utilisées et, d’autre part, 3) A sa richesse fonctionnelle : arithmétique matricielle et nombreuses fonctions de haut niveau dans divers domaines (analyse numérique, statistique, commande optimale, représentation graphique, ...). Prof. Abdellah ADIB FI-GPE 2011-2012 7
  • 8. Qu’est-ce que MATLAB© ? Logiciel interactif de calcul scientifique : Langage de programmation de haut niveau Calcul numérique Calcul symbolique Calcul matriciel Fonctions mathématiques usuelles (sin, exp, log10, …) Racines d’un polynôme Intégration numérique Boites à Outils; e.g. Traitement Numérique du Signal Graphiques 1D, 2D & 3D Etc. Prof. Abdellah ADIB FI-GPE 2011-2012 8
  • 9. Domaines couverts par MATLAB© Prof. Abdellah ADIB FI-GPE 2011-2012 9
  • 10. Autres atouts de MATLAB©  Ordinateur = super calculatrice  Apprentissage facile, commandes intuitives  Moins de C, Pascal, Fortran, Basic, etc.  Inclusion des graphiques dans les documents  Interaction avec des programmes externes  Boites à outils couvrants une multitude de disciplines  Une aide en ligne  Sauvegarde de l’environnement du travail  Etc. … Prof. Abdellah ADIB FI-GPE 2011-2012 10
  • 11. Fenêtre de commandes MATLAB©  Matlab doit être installé, pour lancer l’exécution il faut effectuer un double clic sur l’icône de matlab. Set path Fenêtre de Commandes Rappel ligne de commande Prof. Abdellah ADIB FI-GPE 2011-2012 11
  • 12. Aide Il est à noter que toutes les commandes sont en anglais et l’aide en ligne également ! Prof. Abdellah ADIB FI-GPE 2011-2012 12
  • 13. Aide Les commandes Matlab© doivent toujours être tapées en minuscules même si dans l'aide en ligne elles apparaissent en majuscules. Prof. Abdellah ADIB FI-GPE 2011-2012 13
  • 14. Types de données  Dans Matlab il y a un seul type de données: le type de matrice (matrix).  Tout est matrice → un nombre est une matrice carrée d’ordre 1.  Pas de déclaration de type.  L’utilisation ne s’occupe pas de l’allocation mémoire.  Les matrices et vecteurs peuvent être redimensionnées. Prof. Abdellah ADIB FI-GPE 2011-2012 14
  • 15. Variables MATLAB Variable : - Matrice m x n, m, n >1, - Vecteur 1 x n, n >1, - Scalaire 1x1 Nombres ou chaînes de caractères : - Nom_de_variable : aBz23k... - 1er caractère = lettre - 19 premiers caractères reconnus -Aa Prof. Abdellah ADIB FI-GPE 2011-2012 15
  • 16. Variables MATLAB  Les noms des variables et de fonctions sont composés de lettres et chiffres.  Matlab fait la distinction entre les majuscules et minuscules, ainsi mavar, MAVAR et MAvar sont des variables différentes.  Si la variable existe déjà, le contenu est écrasé par une nouvelle valeur affectée à cette variable. Prof. Abdellah ADIB FI-GPE 2011-2012 16
  • 17. Caractères et variables réservés Caractères spéciaux = assignment statement [ used to form vectors and matrices ] see [ ( arithmetic expression precedence ) see ( . decimal point ... continue statement to the next line , separate subscripts and function arguments ; end rows, suppress printing % comments : subscripting, vector generation ! execute operating system command Prof. Abdellah ADIB FI-GPE 2011-2012 17
  • 18. Fonctions d’usage général help help facility demo demo who list variables in memory what list M-files on disk size row and column dimensions length vector length clear clear workspace computer type of computer quit quit exit exit Prof. Abdellah ADIB FI-GPE 2011-2012 18
  • 19. Caractères et variables réservés Valeurs spéciales ans answer when expression is not assigned eps floating point precision pi  i,j -1 Inf  NaN not-a-Number clock wall clock date date flops floating point operation count nargin number of function input arguments nargout number of function output arguments Prof. Abdellah ADIB FI-GPE 2011-2012 19
  • 20. Modes de Programmation Interactif Prof. Abdellah ADIB FI-GPE 2011-2012 20
  • 21. Mode interactif Prof. Abdellah ADIB FI-GPE 2011-2012 21
  • 22. Prof. Abdellah ADIB FI-GPE 2011-2012 22
  • 23. Vecteurs ou tableaux à 1 dimension  Le moyen le plus simple de saisir un vecteur est d’entrer ses éléments en les séparant par des blancs ou par des virgules » x=[ 6 4 7] x= 6 4 7  Autre façon de saisir un vecteur ligne » x=[6, 4, 7] x= 6 4 7 Prof. Abdellah ADIB FI-GPE 2011-2012 23
  • 24. Vecteurs ou tableaux à 1 dimension  Ce vecteur est considéré comme une matrice à une ligne et trois colonnes » size(x) Ou bien » [m n]=size(x) ans = m=1 1 3 n=3  La longueur d’un tableau, ou bien sa dimension » longeur=length(x) longeur= 3 Prof. Abdellah ADIB FI-GPE 2011-2012 24
  • 25. Opérateurs arithmétiques “Matrix” et “Array” Opérateurs “Matrix” Opérateurs “Array” + addition + addition - subtraction - subtraction * multiplication .* multiplication / right division ./ right division left division . left division ^ power .^ power ‘ conjugate transpose .‘ transpose Arithmétique élément-par-élément Prof. Abdellah ADIB FI-GPE 2011-2012 25
  • 26. Vecteurs ou tableaux à 1 dimension  Si on veut créer le vecteur v=[6 4 7 1 2 8], on peut utiliser le vecteur x précédent » v=[x 1 2 8] %Concaténation v= 6 4 7 1 2 8  Dans Matlab, les indices d’un tableau commencent à 1. Pour récupérer une composante d’un vecteur, il faut spécifier son indice entre parenthèses: » v(2) ans= 4 Prof. Abdellah ADIB FI-GPE 2011-2012 26
  • 27. Vecteurs ou tableaux à 1 dimension  L’addition et la soustraction de vecteur de mêmes dimensions se font élément par élément » x=[4 3]; y=[5 7]; x-y ans= -1 -4 » x+y ans= 9 10  Transposé conjugué < ’> et transposé d’un vecteur < .’> » tx = x ’ tx= 4 3 Prof. Abdellah ADIB FI-GPE 2011-2012 27
  • 28. Vecteurs ou tableaux à 1 dimension  Combinaison linéaire de deux vecteurs de mêmes dimensions se font élément par élément » x=[4 3]; y=[5 7]; 2*x - 4*y ans= -12 -22 » 4*x + 3*y.^2 ans= 91 159  Division de deux vecteurs » x/y tx= 4 3 Prof. Abdellah ADIB FI-GPE 2011-2012 28
  • 29. Vecteurs ou tableaux à 1 dimension » q = 4 : 10 q= 4 5 6 7 8 9 10 » q(end) ans = 10 » q(end-4 : end) ans = 6 7 8 9 10 » q(endq(end-2 : end) ans = 8 9 10 Prof. Abdellah ADIB FI-GPE 2011-2012 29
  • 30. Fonctions opérant sur des vecteurs  sum : somme des composants d’un vecteur » sum(x) % x=[4 3]; ans= 7  prod : produit des composants d’un vecteur » prod(y)= ans= 70 Prof. Abdellah ADIB FI-GPE 2011-2012 30
  • 31. Fonctions opérant sur des vecteurs  sqrt : racines carrées des composants d’un vecteur » sqrt(x) ans= 2.000 1.7321  mean : moyenne des composantes d’un vecteur » mean(x) ans= 2.3333 Prof. Abdellah ADIB FI-GPE 2011-2012 31
  • 32. Fonctions opérant sur des vecteurs  find : recherche les indices et les valeurs des éléments non nuls » X = [1 0 4 -3 0 0 0 8 6]; indices = find(X) indices = 1 3 4 8 9 » find(X > 2) ans= 3 8 9 Prof. Abdellah ADIB FI-GPE 2011-2012 32
  • 33. Fonctions opérant sur des vecteurs  sort : ordonne les éléments du vecteur x par ordre croissant » sort(x) % x=[3 5 1 9 2 -2 51 -8] ans= -8 -2 1 2 3 5 9 51  linspace : génère un vecteur de N points équiespacés entre deux points donnés » y = linspace(0,1,6) y= Columns 1 through 6 0 0.2000 0.4000 0.6000 0.8000 1.0000 Prof. Abdellah ADIB FI-GPE 2011-2012 33
  • 34. Fonctions opérant sur des vecteurs  fliplr : fait tourner le vecteur de droite à gauche » fliplr(x) % x=[3 5 1 9 2 -2 51 -8] ans= -8 51 -2 2 9 1 5 3  flipud : fait tourner le vecteur du bas vers le haut » y = flipud([1; 2; 9]) y= 9 2 1 Prof. Abdellah ADIB FI-GPE 2011-2012 34
  • 35. Prof. Abdellah ADIB FI-GPE 2011-2012 35
  • 36. Matrices ou tableaux à 2 dimensions  Pour saisir une matrice, les lignes sont séparées par un point virgule » x= [0 1 2; 3 4 5] x= 0 1 2 3 4 5  Ou bien en séparant les lignes par des retours à la ligne » x= [0 1 2; 345] Prof. Abdellah ADIB FI-GPE 2011-2012 36
  • 37. Matrices ou tableaux à 2 dimensions  Dimensions d’une matrice x: » [ m n ]=size(x) m= 2 n= 3  Accès à un élément d’une matrice » x(2,1) ans= 3 Prof. Abdellah ADIB FI-GPE 2011-2012 37
  • 38. Matrices particulières  Matrice identité (matrice carrée) : » I=eye(3) I= 1 0 0 0 1 0 0 0 1  Matrice unité » U=ones(2,3) U= 1 1 1 1 1 1 Prof. Abdellah ADIB FI-GPE 2011-2012 38
  • 39. Matrices particulières  Matrice nulle : » Z=zeros(3) Z= 0 0 0 0 0 0 0 0 0  Matrice aléatoire (les éléments sont générés aléatoirement entre 0 et 1) » A=rand(1,4) A= 0.6597 0.1458 0.2564 0.2131 Prof. Abdellah ADIB FI-GPE 2011-2012 39
  • 40. Formes particulières d’initialisation » a= 1:5 a= 1 2 3 4 5 » x= 0: pi/4: pi x= 0 0.7854 1.5708 2.3562 3.1416 » Em= 15: -3: 1 Em= 15 12 9 6 3 Prof. Abdellah ADIB FI-GPE 2011-2012 40
  • 41. Formes particulières d’accès » G=[2 1 6 -5; 3 9 11 4; 6 8 1 36; -1 5 -7 9; 9 5 3 1 ]; » G(2:3,4)’ ans= 4 36 » G([1 3 5],[2 3 4]) ans= 1 6 -5 8 1 36 5 3 1 Prof. Abdellah ADIB FI-GPE 2011-2012 41
  • 42. Prof. Abdellah ADIB FI-GPE 2011-2012 42
  • 43. Exemple 1 Donner les valeurs de la fonction suivante y = (x+2)2(x3+1) pour des valeurs de x entre -1 et 3 avec un pas de 0.1 Solution : » x=[-1:0.1:3]; » y = ((x+2).^ 2) .* ((x.^3)+1); Prof. Abdellah ADIB FI-GPE 2011-2012 43
  • 44. Exemple 2 Construire la fonction z = s2/(s3 + 1) pour 200 valeurs de x entre -3 et 40. Solution : » s=linspace(-3,40,200); » y = s.^2./(s.^3 + 1); Prof. Abdellah ADIB FI-GPE 2011-2012 44
  • 45. Exemple 3 Donner 50 valeurs du polynôme y = x4 + x2 - 3 Entre x = -2 et x = 2. Solution : » x=linspace(-2,2,50); » c = [1 0 1 0 -3]; » y = polyval(c,x); Prof. Abdellah ADIB FI-GPE 2011-2012 45
  • 46. Exemple 4 Soit la matrice F=[1 2 3; 4 5 6; 7 8 9], éliminer la deuxième colonne puis la première ligne Solution : » F(:,2) = [] » F(1,:) = [] F= F= 1 2 3 4 5 6 4 5 6 7 8 9 7 8 9 Prof. Abdellah ADIB FI-GPE 2011-2012 46
  • 47. Nombres complexes » i^2 ans= -1 » j^2 ans= -1 » a=3+2i a= 3.0000 + 2.0000i » w=r+exp(2*j*teta); » w=[1 2 8.3 sqrt(6)]+0,3*i*ones(1,4); Prof. Abdellah ADIB FI-GPE 2011-2012 47
  • 48. Fonctions d'arrondis round(x) : entier le plus proche de x, » round(1.8356) » round(3.4356) ans= ans= 2 3 floor(x) : arrondi par défaut, » floor(3.9) ans= 3 Prof. Abdellah ADIB FI-GPE 2011-2012 48
  • 49. Fonctions d'arrondis ceil(x) : arrondi par excès, » ceil(1.8356) » ceil(3.4356) ans= ans= 2 4 fix(x) : arrondi par défaut un réel positif et par excès un réel négatif. » fix(3.9) » fix(-2,1) ans= ans= 3 -2 Prof. Abdellah ADIB FI-GPE 2011-2012 49
  • 50. Format : La manière d’apparition des nombres » s = [1/2 1/3 pi]; » format short; s s= 0.5000 0.3333 3.1416 » format long; s s= 0.50000000000000 0.33333333333333 3.14159265358979 » format rat; s s= 1/2 1/3 355/113 » format bank; s s= 0.50 0.33 3.14 Prof. Abdellah ADIB FI-GPE 2011-2012 50
  • 51. Prof. Abdellah ADIB FI-GPE 2011-2012 51
  • 52. Exemple  Créer une matrice 4x2 tous zéros et la stocker dans une variable. Puis, remplacer la deuxième rangée dans la matrice par un vecteur se composant des 3 et des 6.  Trouver une manière efficace de reproduire la matrice suivante : mat = 7 8 9 10 12 10 8 6 Puis, donner les expressions qui, pour la matrice mat de, 1. se rapporter à la deuxième rangée entière 2. se rapporter aux deux premières colonnes Prof. Abdellah ADIB FI-GPE 2011-2012 52
  • 53. Exemple  Créer un vecteur de variable vect ; il peut avoir n'importe quelle longueur. Puis, écrire les instructions qui permettent de stocker la première moitié du vecteur dans une variable et la deuxième moitié dans une autre variable. S'assurer que vos instructions d'affectation sont générales, et opèrent correctement même si le vect a un nombre pair ou impair d'éléments. (Conseil : Employer une fonction d'arrondis telle que la difficulté.). Prof. Abdellah ADIB FI-GPE 2011-2012 53
  • 54. Prof. Abdellah ADIB FI-GPE 2011-2012 54
  • 55. L'éditeur de scripts MATLAB Prof. Abdellah ADIB FI-GPE 2011-2012 55
  • 56. Fonctions “usager” de type “script” Fonction sans argument Variables globales %*****************************% %* pivot_x.m *% %*****************************% echo off x=[1 2 3 4] x=fliplr(x) » pivot_x x= 1234 x= 4321 Prof. Abdellah ADIB FI-GPE 2011-2012 56
  • 57. Fonctions “usager” de type “function” Les fonctions m-files sont des vrais sous programmes; puisque elles utilisent des arguments I et/ou O. Variables autres que les I/O sont locales à la fonction Syntaxe générale : function [arguments de sortie] = Nom_fonction (arguments d’entrée) Prof. Abdellah ADIB FI-GPE 2011-2012 57
  • 58. Exemple de “function” Nom de Un seul argument de la fonction Arguments sortie, pas de [ ] d’entrée function y = plptnb(n1,n2) 1- Commentaire, 1er ligne, doit contenir % Retourne le plus petit de n1 ou n2 qui apparaîtra en la définition de la %Notes : Un exemple de fonction utilisant help fonction y = n2; 2- Les informations if n1 < n2 dans Notes Le corps de y=n1; n’apparaîtrons la fonction end; jamais Return; Utilisation de » a=-2; b=3; » plptnb(-2, 3) la fonction » plptnb(a,b) » ans = » ans = -2 -2 Prof. Abdellah ADIB FI-GPE 2011-2012 58
  • 59. Organisation d'un programme Toute bonne programmation repose sur l'écriture d'un script principal qui fait appel à des fonctions autonomes. Cela permet : • d'améliorer la lisibilité • de tester indépendamment des parties de programmation • d'augmenter le degré de généralité (utilisation d'une même fonction à divers endroits du programme, voire réutilisation des fonctions dans d'autres applications) Prof. Abdellah ADIB FI-GPE 2011-2012 59
  • 60. Structure d’un Bon programme Comme dans l'exemple ci-dessus, le nom du script attaché à une fonction doit obligatoirement porter le nom de la fonction avec l'extension.m. Prof. Abdellah ADIB FI-GPE 2011-2012 60
  • 61. Prof. Abdellah ADIB FI-GPE 2011-2012 61
  • 62. Exemples Écrire une fonction qui calculera le volume d'une sphère creuse, on adoptera la formule suivante : 4 3 où est le rayon intérieur et est le rayon extérieur. Écrire une fonction qui permet de construire la matrice suivante : 2 2 2 2 2 2 2 3 3 3 3 3 3 3 7 7 7 7 7 7 7 9 9 9 9 9 9 9 4 4 4 4 4 4 4 Prof. Abdellah ADIB FI-GPE 2011-2012 62
  • 63. Prof. Abdellah ADIB FI-GPE 2011-2012 63
  • 64. Opérateurs logiques  Les opérateurs logiques combinent des expressions booléennes :  En terme numérique, tout nombre non nul est considéré comme vrai Prof. Abdellah ADIB FI-GPE 2011-2012 64
  • 65. Liste des opérateurs  & : ET logique élément par élément  | : OU logique élément par élément  ~ : NON (négation logique de l’opérande) Prof. Abdellah ADIB FI-GPE 2011-2012 65
  • 66. ET logique Cas de deux expressions logiques x = 1; y = 3; w = -1; z = 10; (x>y) & (w>z) 0 (FAUX) (x>y) & (w<z) 0 (FAUX) (x<y) & (w<z) 1 (VRAI) x & y est équivalent à (x ~ =0)&(y ~= 0) 1 (VRAI) Cas de deux vecteurs u = [1 0 2 3 0 5]; v = [5 6 1 0 0 7]; u&v 1 0 1 0 0 1 (VRAI FAUX VRAI FAUX FAUX VRAI) Prof. Abdellah ADIB FI-GPE 2011-2012 66
  • 67. Opérateur OU Cas de deux expressions logiques x = 1; y = 3; w = -1; z = 10; (x>y) | (w>z) 0 (FAUX) (x>y) | (w<z) 1 (VRAI) (x<y) | (w<z) 1 (VRAI) x | y (est équivalent à (x ~ =0) | (y ~= 0)) 1 (VRAI) Cas de deux vecteurs u = [1 0 2 3 0 5]; v = [5 6 1 0 0 7]; u|v 1 1 1 1 0 1 (VRAI VRAI VRAI VRAI FAUX VRAI) Prof. Abdellah ADIB FI-GPE 2011-2012 67
  • 68. Opérateur NON (négation) Négation d’une expression logique x = 1; y = 3; ~(x>y) 1 (VRAI) ~(x<y) 0 (FAUX) ~(x==y) 1 (VRAI) Négation d’un scalaire ~y équivalent a y == 0 1 (VRAI) Négation d’un vecteur ~u (u = [1 0 2 3 0 5]) équivalent a u == 0 0 1 0 0 1 0 (FAUX VRAI FAUX FAUX VRAI FAUX) Prof. Abdellah ADIB FI-GPE 2011-2012 68
  • 69. Prof. Abdellah ADIB FI-GPE 2011-2012 69
  • 70. Les instructions de contrôle  Les principales instructions de contrôle sous Matlab sont :  Instructions IF … ELSEIF … ELSE … Instructions sélectives  Instructions SWITCH … CASE … OTHERWISE… Chois ventilés  Instructions WHILE … FOR … (Boucles) Instructions répétitives  Instructions CONTINUE … Passage à l’itération suivante dans une boucle  Instructions BREAK … Arrêt de l’exécution d’une boucle Prof. Abdellah ADIB FI-GPE 2011-2012 70
  • 71. Prof. Abdellah ADIB FI-GPE 2011-2012 71
  • 72. Instruction sélective IF  La sélection if  Syntaxe : Expression logique dont le résultat est soit 1 (vrai) ou 0 si (faux), if condition Mots clé séquence d’instructions Corps de la sélection Fin de la sélection end Prof. Abdellah ADIB FI-GPE 2011-2012 72
  • 73. Instruction sélective IF … ELSE  La sélection if … else … end  Syntaxe : Expression logique dont le résultat est soit 1 (vrai) ou 0 si (faux), if condition Mots clé séquence d’instructions 1 Action Fin de la sélection else séquence d’instructions 2 Alternative end Prof. Abdellah ADIB FI-GPE 2011-2012 73
  • 74. Instruction sélective IF … ELSEIF … ELSE  La sélection if … elseif … else … end  Syntaxe : if condition séquence d’instructions 1 Action elseif séquence d’instructions 2 Alternative 1 Else séquence d’instructions 3 Alternative 2 end Prof. Abdellah ADIB FI-GPE 2011-2012 74
  • 75. Exemple Ecrire une fonction qui cherche la mention en fonction de la moyenne obtenue function m = mention(moy) % Mention en fonction de la moyenne if moy>=16 m=’très bien’; elseIf moy>=14 m=’bien’; elseIf moy>=12 m=’assez bien’; elseIf moy>=10 m=’passable’; else m=’Ajourné’; end Prof. Abdellah ADIB FI-GPE 2011-2012 75
  • 76. Prof. Abdellah ADIB FI-GPE 2011-2012 76
  • 77. Instruction répétitive FOR  La sélection for … end  Syntaxe : i variable appelée indice de la boucle for i = ind_debut : ind_fin Mots clé séquence d’instructions Corps de la boucle Fin de la boucle end Prof. Abdellah ADIB FI-GPE 2011-2012 77
  • 78. Instruction répétitive SWITCH  La sélection switch … case c1 … case cn … otherwise … end  Syntaxe : switch var case c1 séquence d’instructions 1 ... n choix ventilés case cn séquence d’instructions n otherwise séquence d’instructions par défaut end var expression ou variable à évaluer, c1 … cn constantes représentant les possibilités d’évaluation de var. Prof. Abdellah ADIB FI-GPE 2011-2012 78
  • 79. Prof. Abdellah ADIB FI-GPE 2011-2012 79
  • 80. Graphiques » x=0:0.05:(2*pi); » y=exp(-x).*sin(x); » plot(x,y); Prof. Abdellah ADIB FI-GPE 2011-2012 80
  • 81. Graphe plus lisible » axis([0 (2*pi) -0.1 0.4]); » title ('Exemple de graphique'); » xlabel(‘Abscisse'); Exemple de graphique » ylabel(‘Ordonnee'); » grid; Ordonnee Abscisse Prof. Abdellah ADIB FI-GPE 2011-2012 81
  • 82. Graphe avec plusieurs courbes superposées » y1=exp(-2*x).*sin(x); » y2=exp(-3*x).*sin(x); » y3=exp(-4*x).*sin(x); » plot(x,y,'-',x,y1,'-.',x,y2,'*',x,y3,'o‘ ); Prof. Abdellah ADIB FI-GPE 2011-2012 82
  • 83. Graphe avec plusieurs courbes séparées » subplot(2,2,1), plot(x,y), title('y'); » subplot(2,2,2), plot(x,y1), title('y1'); » subplot(2,2,3), plot(x,y2), title('y2'); » subplot(2,2,4), plot(x,y3), title('y3'); Prof. Abdellah ADIB FI-GPE 2011-2012 83
  • 84. Graphe 3-D Supposons, par exemple que l'on veuille représenter la surface définie par la fonction z=sin(xy) sur le carré suivant [-p/2,p/2]x[-p/2,p/2] à l'aide d'une grille de points 31x31. On utilise la séquence de commandes : [xi,yi]=meshgrid(-pi/2:pi/30:pi/2); %(génération d'une grille régulière) zi=sin(xi.*yi); surf(xi,yi,zi,zi); %(affichage de la surface) Prof. Abdellah ADIB FI-GPE 2011-2012 84
  • 85. À retenir >> Variable MATLAB matrice >> Opérateurs “matrix” et “array” >> Fichiers exécutables “.m” type “script” et “function”; >> Fichiers binaires “.mat” pour échange de données >> Extensions (toolboxes) Prof. Abdellah ADIB FI-GPE 2011-2012 85
  • 86. RESTE MAINTENANT A APPRENDRE LA VRAI PROGRAMMATION SOUS MATLAB !!!!!!!!! Prof. Abdellah ADIB FI-GPE 2011-2012 86