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

Cours matlab gpe

  • 1.
    Introduction à MATLAB Prof.Abdellah ADIB FI-GPE 2011-2012 1
  • 2.
    MATLAB C’est un systèmeinteractif 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=[23 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 parMATLAB© Prof. Abdellah ADIB FI-GPE 2011-2012 9
  • 10.
    Autres atouts deMATLAB©  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 commandesMATLAB©  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  Lesnoms 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 variablesré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 variablesré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. AbdellahADIB 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 surdes 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 surdes 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 surdes 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 surdes 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 surdes 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  Matriceidentité (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  Matricenulle : » 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 lesvaleurs 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 lafonction 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 50valeurs 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 lamatrice 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 : Lamaniè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 unematrice 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 unvecteur 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 scriptsMATLAB Prof. Abdellah ADIB FI-GPE 2011-2012 55
  • 56.
    Fonctions “usager” detype “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” detype “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 Toutebonne 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 Bonprogramme 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 fonctionqui 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  Lesopé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 dedeux 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 dedeux 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égationd’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 decontrô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 fonctionqui 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 plusieurscourbes 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 plusieurscourbes 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, parexemple 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 >> VariableMATLAB 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 AAPPRENDRE LA VRAI PROGRAMMATION SOUS MATLAB !!!!!!!!! Prof. Abdellah ADIB FI-GPE 2011-2012 86