SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Interfaces graphiques sous Matlab                            Support du cours




                               Support du cours

                      Interfaces graphiques sous Matlab




                             Préparé par : Mr N.Nasri




1                                                         blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                        Support du cours




1 - Introduction :

        MATLAB (MATrix LABoratory) est un logiciel basé sur le calcul matriciel. Son noyau
est composé de librairies écrites au début en Fortran puis en C++. Il permet :
– le calcul numérique.
– le tracé de graphiques.
– la programmation.
– l‘interfaçage avec d‘autres langages (Fortran, C++).
– le développement d‘interface utilisateur (GUI).
– l‘utilisation des boites à outils (Toolboxes) spécialisées.




      MATLAB présente deux modes de fonctionnement :
1. Le mode interactif : exécution des instructions entrées par l‘utilisateur dans la fenêtre de
commande de MATLAB (le Workspace).

2. Le mode exécutif : exécution de ‖programmes‖ ou ‖scripts‖ qui sont des fichiers
regroupant une suite d‘instructions (les fichiers M).




2 - Première utilisation de Matlab :

Une façon efficace de découvrir Matlab est d'utiliser son aide en ligne.
    help : "help" tout seul donne la liste des aides générales possibles.
    helpwin : ouvre une fenêtre et donne accès à une aide détaillée.
    help + nom d’une commande : indique la syntaxe des graphes en 2D.
                   Exemple : >> help plot
   demo : lance une démo générale de Matlab .
   help demos : donne une liste des démos existantes.




2                                                                     blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                        Support du cours


Quelques commandes importantes:

     lookfor + nom de commande : donne une liste de toutes les commandes qui ont un
                rapport avec la nom de commande écrite .

     who et whos : donne les noms de variables présentes dans l‘espace de travail.
     clear : supprime les variables de l‘espace du travail.
     clc : efface l‘écran (sans toucher aux variables !)

     exit ou quit : permet de sortir de Matlab
     CTRL + C : (touches du clavier) permet d‘interrompre un programme (ie : récupérer la
      main).




Format des variables:

x = [4/3 1.2345e-6]

format   short     1.3333                   0.0000
format   short e   1.3333e+000              1.2345e-006
format   short g   1.3333                   1.2345e-006
format   long      1.33333333333333         0.00000123450000
format   long e    1.333333333333333e+000    1.234500000000000e-006
format   long g     1.33333333333333        1.2345e-006
format   bank       1.33                     0.00
format   rat       4/3                      1/810045
format   hex        3ff5555555555555         3eb4b6231abfd271

Nota : on commence d‘abord par définir le format, puis l‘opération à effectuer ou le nombre à
affiché.




3                                                                     blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                             Support du cours


3 - Les matrices dans Matlab :
Création de matrices :
>> A = [a11 …. a1m; …. ; an1 …. anm]   Exemple :   >> A=[1 2 3 4;2 3 4 1;3 4 1 2;4 1 2 3]

Quelques matrices prédéfinies :
>> zeros(i,j)    : donne une matrice de zéros.
>> ones(i,j)      : donne une matrice de uns .
>> eye(i,j)      : donne une matrice identité.
>> rand(i,j) ou >> randn(i,j) : donne une matrice d‘éléments aléatoires.

       - i,j sont des entiers.
      - pour randn : les éléments sont choisis avec la loi normale.




Quelques commandes importantes:
>> A(i, :)      : désigne la iiéme ligne de la matrice A.
>> A(:, j)      : désigne la jième colonne de la matrice A.

>> A(i:j , :) : désigne la sous matrice formées des iiéme et jième lignes de la matrice A.
>> A(:, i:2:j) : désigne la sous matrice formée des colonnes impaires de la matrice A.
               Nota : le 2 est le pas considéré.

>> size(A)            : permet d'obtenir la taille de la matrice A.
>> max (A)            : désigne l‘élément maximal de la matrice A.
>> min (A)            : désigne l‘élément minimal de la matrice A.
>> mean (A)            : désigne la moyenne des éléments de matrice A.
>> median (A)          : désigne la valeur médiane des éléments de matrice A.




>> sort (A )          : tri par ordre croissant des éléments de matrice A.
>> prod (A)           : produit des éléments de matrice A.
>> sum (A)            : somme des éléments de matrice A.
>> expm (A)           : exponentielle de matrice A. (important :A doit être carrée)
>> sqrtm (A)           : racine carrée de la matrice A. (important :A doit être carrée)


4                                                                         blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                           Support du cours



>> inv (A)           : la matrice inverse de A.
>> det (A)           : déterminant de la matrice A. (important :A doit être carrée)
>> eig (A)           : valeurs propres et vecteurs propres de la matrice A.
>> null (A)          : noyau de la matrice A.
>> rank (A)           : rang de matrice A.


Application 1 : Construction élément par élément
Ecrire l‘exemple sous Matlab et commenter le résultat.
Exemple:
>>for i=1:3,for j=1:4, F(i,j)=i+(j-1)*3;end;end;
>> F




4 - Opérations sur les polynômes :
Nota : un polynôme se déclare comme un vecteur qui contient ses coefficients.
Exemple 1 : B(x)=5.X4 +3.X3 +2.X
Sous Matlab : >> B=[5 3 0 2 0]      ou bien : >> B=[5,3,0,2,0]

Quelques commandes importantes:
>> Roots (B)          : racines du polynôme B.
>> polyval (B,x)      : évaluer le polynôme (exp: avant de représenter son graphe).
>> poly (v)           : reconstruit un polynôme à partir de ses racines.




5 – Graphisme dans Matlab :
Gestion des graphiques à 2d :
>> Plot (y)               : représente le graphe de la fonction y.
>> title (‗ expression ‘) : affiche le titre du graphe.
>> Xlabel (‗expression ‘) : affiche l‘étiquette à l‘axe des abscisses.
>> Ylabel (‗expression ‘) : affiche l‘étiquette à l‘axe des ordonnées.




5                                                                        blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                                           Support du cours



>> grid on                          : affiche la grille.
>> grid off                        : masque la grille.
>> hold on                         : affiche une seconde courbe dans une meme figure.
>> clf                             : efface le graphe .
>> stem (y)                         : représente la séquence de données (discrètes) y.


Application :
x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)
legend('sin(x)','sin(x-.25)','sin(x-.5)')


Le style et Couleurs des lignes :
>> plot (x,y,'style_couleur_marker')

• Couleur :      'c',  'm'      'y'    'r'   'g'    'b' 'w'       'k'
              [cyan, magenta, yellow, red, green, blue, white et black].

• Style :     '-'   '--'     ':'         '-.'         Exemple : >> plot (y, ‘linestyle‘,‘—‗) ;

• Marker : '+'      'o'    '*'     ‗x'          ‗s'   'd'     ' ^'   'v'   '>'     '<'      'p'    'h'




Utilisation du Handle :
       Quand Matlab crée des objets, il leurs affecte un identifiant appelé ―handle‖. Ce dernier
est utilisé pour acceder aux propriétés de l‘objet grace aux instructions : ―set ― et ―get ―.

Exemple :
>> x = 1:10;
>> y = x.^3;
>> h = plot(x,y);
Pour changer de couleur , on ecrit :
set(h,'Color','red')
Pour changer le style de ligne , on ecrit :
set(h,'LineWidth', 6);


6                                                                                        blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                           Support du cours


6 - Gestion des Images :
Lire et afficher une Image :   I = imread ('nom_image.ext');
                                   figure, imshow (I)

Redimensionner une Image : J = imresize(I,0.6);
                               figure, imshow (J)        % --- Affichage ---*
                       (Le 0.6 est le facteur d‘échelle)

Retourner une Image :        K = imrotate (I,30);
                                figure, imshow(K)
                           (Le 30 est le facteur d‘échelle)




7 - Gestion de l’audio :
Lecture d‘un son :

>> y = wavread('Nom.wav'); : Nom.wav Fichier qui se trouve dans le dossier Work.
>> wavplay(y, F)            : F représente la fréquence.
                        % (Poser F=20000, puis changer de valeur pour voir son effet).
>> sound(y, F)               : Convertir le signal y en un son.
>> aviread (y)               : lire les fichiers AVI (Audio / Video Interleaved).

Enregistrer un son :
>> wavwrite (y, F, ‗nom_fichier‘)    : sauvegarde le signal y dans un fichier au format Wav.




8 - Programmation en Matlab :
Les fonctions élémentaires :
       Un certain nombre de fonctions élémentaires sont prédéfinies : sin, cos, abs,...

>> x=[0:0.5:pi]
>> sin(x)
>> x=[0:0.2:10]
>> exp(x)




7                                                                       blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                           Support du cours


Fonctions et script :
    Exemple de fonction : écrire ce programme et l‘enregistrer sous nom : trinome.m

    % --- calcul des solutions de l'équation a*x^2+b*x+c=0 ---*

    function r =trinome(a,b,c)
    delta=b^2-4*a*c;
    if delta==0
       r(1)=-b/2;

    else delta > 0
      r(1)=(-b-sqrt(delta))/2*a;
      r(2)=(-b+sqrt(delta))/2*a;

    end
    disp(['delta == ', num2str(delta)]);
    disp(['la solution est ', num2str(r)]);




     Utilisation de la fonction dans un script: écrire ce programme et l‘enregistrer sous
      nom : trinome3.m

     % --- calcul des solutions de l'équation a*x^2+b*x+c=0 ---*
     disp ('Ceci est un script qui calcul des solutions de l''équation a*x^2+b*x+c=0');

     disp ('Donner la valeur de a')
     a=input ('a = ');
     disp ('Donner la valeur de b')
     b=input ('b = ');
     disp ('Donner la valeur de c')
     c=input ('c = ');
     trinome (a,b,c);      % appel de la fonction aux parameters a,b,c



    Remarque :

       Cette fonction ne prend pas en considération le cas ou ( a=0, b=0, c=0=).
       - Modifier trinome2.m afin d‘avoir une solution complète.




8                                                                       blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                           Support du cours


     Exemple de script: écrire ce programme et l‘enregistrer sous nom : trinome2.m

     % --- calcul des solutions de l'équation a*x^2+b*x+c=0 ---*

     disp ('Ceci est un script qui calcul des solutions de l''équation a*x^2+b*x+c=0');

     disp ('Donner la valeur de a')
     a=input ('a = ');
     disp ('Donner la valeur de b')
     b=input ('b = ');
     disp ('Donner la valeur de c')
     c=input ('c = ');

     delta=b^2-4*a*c;
     if delta==0
        r(1)=-b/2;

     else delta >0
       r(1)=(-b-sqrt(delta))/2*a;
       r(2)=(-b+sqrt(delta))/2*a;

     end

       disp (['delta == ', num2str(delta)]);
       disp (['la solution est ', num2str(r)]);




9                                                                       blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                            Support du cours



9 - Conception de l’interface graphique GUI : [Graphical User Interface]

Avantage des GUI : La productivité.
      Basculer entre plusieurs applications sans perdre beaucoup du temps.
(Exemple : dans l‘environnement Windows, passer entre Word, Explorer, Excel, Media
player, .. se fait de manière très rapide).


Etapes de Conception :

        Il clair qu‘il ne suffit pas de s‘asseoir et de se mettre à programmer. Il faut passer par
     certaines étapes :


           Description         Analyse                                          Interface
               Du                Du          Algorithme      Programme          Graphique
            Problème          Problème


      Prendre un cahier et un crayon

         Planifier : définir le but de l‘interface
         Analyse : définir le problème à résoudre.
                     (Rassembler les équations mathématiques nécessaires)
         Le Cahier de charge : définir les fonctions et taches en détails.
           (Enumérer les différentes taches voulues et rassembler les données nécessaires)
         La Conception : compléter le cahier de charge avec les détails de conception :
                                           - Développer le design.
                                           - Exemples d’écran (taille des fenêtres...).
                                           - Disposition des boutons.
                                           - Les couleurs, la forme d’écriture.
               (Ces détails dépendent de votre cible [A qui est destiné votre interface).

      Maintenant on passe à l‘étape de programmation :

         Le Codage : qui ne se termine jamais (ie : il y a toujours des modifications).
         Le Test : tester les différentes fonctions avec différentes « inputs ».
                     (Il conseillé de refaire le test plusieurs fois).




10                                                                        blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                          Support du cours


Principes de Conception :
    Garder à l‘esprit les sept principes qui ont guidé l‘écriture de Windows.

       L’utilisateur doit avoir le contrôle : l‘utilisateur doit sentir que c‘est lui qui à
                       l‘initiative d‘une action au lieu de réagir à l‘ordinateur.

       Etre direct : une image vaut mille mots. (les différentes fonctions doivent être
                        visuellement intuitives).


       La Cohérence : votre interface doit être cohérente avec Windows, l‘utilisateur ne
                      doit pas passer son temps à apprendre votre application( c‘est la
                      cohérence externe).
                      (L‘interface doit présenté une cohérence interne : entre les
                      différentes fenêtres).
                      Exemple : Si le raccourci clavier Ctrl + C : sert à copier dans une
                      fenêtre, il faut pas l‘utiliser pour une autre fonction dans une autre
                      fenêtre.

       Etre magnanime : si l‘on est sur le point d‘effectuer une action qui formatera le
                     disque dur, une boite de dialogue apparaît est prévient de ce qui
                     risque d‘arriver.
                     ie : Toutes les actions de l‘utilisateur doivent être réversible ou
                     corrigible ;et il doit être prévenu à l‘aide des boites du dialogue.

       Du répondant : « faire toujours savoir à l‘utilisateur ce qui se passe » .
                            - Barre de chargement
                            - Boite de dialogue
                            - Indices visuels et sonores
                            - Messages d‘erreur
                            - Changement de la forme du curseur

       De l’esthétique :
                               - Couleur
                               - Design
                               - Disposition des objets

       De la simplicité : la GUI doit être facile d‘apprentissage et d‘usage . ie : permettre
                           l‘accès à toutes les fonctions et informations de l‘application, tout
                           en gardant la manipulation aussi simple que possible.
                           Eviter de trop écrire : écrivez Nom au lieu de Nom du client.
                           (Il faut s‘exprimer avec un minimum de mots sans pour autant
                           perdre en sens).



11                                                                     blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                            Support du cours


Exemple de GUI par programmation :

      On veut reprendre la fonction trinome.m et l‘utiliser dans une interface.
Ecrire ce code et sauvegarder le sous le nom : second_degre.m .

% --- calcul des solutions de l'équation a*x^2+b*x+c=0 ---*
close all
clear all

%création de la fenêtre graphique
figure (1)

% titre principal
txt_principal = uicontrol(gcf, ...
              'style', 'text', ...
             'position',[30 340 500 45],...
             'string',' Calcul des solutions de l''équation : a*x^2+b*x+c=0') ;

% création des zones éditables
ed_a = uicontrol(gcf, ...
           'style', 'edit', ...
           'position',[275 230 100 20])

ed_b = uicontrol(gcf, ...
           'style', 'edit',...
           'position',[275 200 100 20])

ed_c = uicontrol(gcf, ...
            'style', 'edit', ...
            'position',[275 170 100 20])

ed_delta = uicontrol(gcf, ...
            'style', 'edit',...
            'position',[275 110 200 20])

ed_sol = uicontrol(gcf,...
            'style', 'edit', ...
            'position',[275 80 200 20])

% création des boutons
% le bouton Fermer
clabel = 'Fermer'
cpos = [370 30 180 20] ;
ccallback = 'close all ; clear all' ;


12                                                                        blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                          Support du cours



bp_fermer = uicontrol(gcf, ...
           'style', 'push', ...
           'position',cpos,...
           'string',clabel,...
           'callback', ccallback) ;

% le bouton Résolution
clabel = 'Résolution'
cpos = [130 140 180 20] ;

ccallback=['a=str2num(get(ed_a,''string'')),'...
       'b=str2num(get(ed_b,''string'')),'...
       'c=str2num(get(ed_c,''string'')),'...
      'trinome(a,b,c),'...     % le fichier modifié
      'load delta,'...
      'load solution,'...
      'set(ed_delta,''string'',num2str(delta)),'...
      'set(ed_sol,''string'',num2str(r))']

bp_resolution = uicontrol(gcf, ...
                 'style', 'push',...
                 'position',cpos,...
                 'string',clabel,...
                 'callback',ccallback);




Nota :
La fenêtre peut être personnalisé :

Hfenetre= figure (‗Name‘, ‗nom_fenetre‘ , …
                   ‗NumberTitle‘, ‗off‘, …
                   ‗Resize‘ , ‗off‘, …
                   ‗Position‘, [x y largeur hauteur])




13                                                      blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                                   Support du cours




10 - Création d’une interface graphique avec MATLAB GUIDE
        L'environnement GUIDE de Matlab permet de développer des GUI, des interfaces graphiques. Un GUI
est défini dans Matlab par deux fichiers dépendants, respectivement une figure et un script. La programmation
d'un GUI utilise des callbacks, et les échanges de données s'opèrent avec des handlers.

Éléments de base
   - Fiche et composants visuels (aspect visuel).
   - Code définissant fonctionnement de l‘interface (aspect fonctionnement).

Création d’une nouvelle interface
– Ligne de commande MATLAB : tapez « guide »
– Dans la fenêtre « GUIDE Quick Start », choisissez l‘onglet « Create New GUI ».
– Une fiche vierge quadrillée apparaît à l‘écran sur laquelle vous placerez les composants
      visuels de l‘interface graphique.

Palette des composants visuels :

     •   « Push buttons » : (boutons poussoirs)
                Un seul état (stable).
                Identifié avec un court texte (paramètre ‗String‘).
                Événement à traiter: clic ou relâchement du bouton gauche de la souris.

     •   « Checkboxes » : (cases à cocher)
                Deux états possibles.
                Boutons d‘un même groupe sont indépendants (plusieurs options peuvent
                    être sélectionnées simultanément).

     •   « Radio buttons » : (boutons radio)
                 Deux états (comme case à cocher).
                 Boutons d‘un même groupe sont mutuellement exclusifs (une seule option
                     peut être sélectionnée à la fois).

     •   « Frames » : (cadres)
                   Bordure rectangulaire délimitant un groupe de contrôles.

     •   « Static text » : (champ de texte fixe)
                     Affichage de texte.

     •   « Edit text » : (champ de texte éditable)
                    Saisie de texte.
                    Pas pour affichage.



14                                                                              blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                              Support du cours




     •   « Pop-up menus » : (menus déroulants)
                  Choix d‘un item parmi une liste.
                  Seul l‘item sélectionné est affiché.
                  Événement à traiter : item cliqué par la souris.


     •   « Sliders » :   (barres de défilement)
                        Choix d‘une valeur numérique à l‘intérieur d‘un intervalle.
                        Peuvent être orientées horizontalement ou verticalement.
                        Événement à traiter : déplacement de la barre.

     •   « Listboxes » : (listes)
                   Choix d‘un item parmi une liste.
                   Un groupe d‘items, dont l‘item sélectionné, est affiché.
                   Événement à traiter: item choisi par clic de la souris.

     •   Menus : (à partir du MenuEditor)
                   Choix d‘un item parmi une liste d‘options permises ou non.
                   Possibilité de clé de raccourcis.
                   Possibilité de sous-menus.
                   Événement à traiter: item de menu choisi par clic de souris.

     •   Axes :
                    Permet d‘afficher un graphique tracé par MATLAB
                    Permet d‘afficher des fichiers image
                    Événement à traiter: l‘utilisateur clique sur la souris lorsque le curseur se
                     trouve à l‘intérieur des bornes du composant.




15                                                                         blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                          Support du cours




Accès aux données associées aux composants visuels
      À tout objet d'interface, Matlab associe un pointeur qui permet d'accéder aux
propriétés, le handler.

Certains handlers sont déjà définis par défaut :
          gcf : handler de la figure courante (get current figure).
          gca : axes courants de tracé (get current axes).
          gcbf : la figure cliquée (get callback figure).
          gcbo : l'objet qui appelle (celui sur lequel on a cliqué).
          0 : la fenêtre interpréteur Matlab, ou racine.


Certaines instructions nécessitent un handler :
          get et set : respectivement pour lire et pour changer les valeurs des propriétés.
          findobj : pour retrouver le handler d'un objet.
          propedit : pour éditer les propriétés d'un objet.
          delete : pour effacer un objet.




      Exemple de GUI : construire sous GUIDE la fenêtre suivante et l‘enregistrer sous nom :
       second –degre2.m




16                                                                      blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                         Support du cours




Ecrire au niveau du bouton « Résolution » le programme suivant :

     h=findobj (gcbf,'tag','edit_a');
     a=str2num (get (h,'string'));
     h=findobj (gcbf,'tag','edit_b');
     b=str2num (get (h,'string'));
     h=findobj (gcbf,'tag','edit_c');
     c=str2num (get (h,'string'));

     trinome(a,b,c)      % utilisation de la fonction programmée auparavant.

     load delta;
     load solution;
     % --- Affichage -----
     h=findobj (gcbf,'tag','edit_delta');
     set (h,'string',num2str(delta));
     h=findobj (gcbf,'tag','edit_sol');
     set (h,'string',num2str(r));

Modifier le fichier trinome.m en ajoutant ces deux instructions :

     save delta delta;
     save solution r;




17                                                                     blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                                    Support du cours



Annexe :

Exemple       : les vecteurs

Sur un ensemble de notes entre 0 et 20.
 - Calculer le nombre de notes>= 10.
 - Calculer le nombre de notes >=moyenne des notes.

 Le programme :

      disp (' *** N''oubliez pas les crochets ***') ;
      Note = input('Note == ');

      Taille= length(Note);
      Somme=0;

      for i=1:Taille
               Somme=Somme+Note(i);
      end

      moy=Somme/Taille ;
      N10=0;
      Nmoy=0;


     for i =1:Taille
              if Note (i)>=10
                      N10=N10+1;
             end
             if Note (i)>=moy
                      Nmoy=Nmoy+1;
             end
       end

      disp (['nombre de notes sup à 10 :' num2str(N10)]);
      disp (['nombre de notes sup à la moyonne :' num2str(Nmoy)]);




18                                                              blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                               Support du cours




Exemple          : Graphe (légende)


X=0 :0.1 :1
                Sinx en tirets       cosx en couleur rouge

Plot ( x, sinx, ‘-‗, x, cosx, ‘r‘)

Variables               fonctions à représenter

Xlabel (‗ titre‘)   % titre = fonction sinx/cosx
ylabel (‗ titre‘)  % titre = x
legend (‗sinx‘,‘cosx‘,1)    % loin droit haut.
                     2      % loin gauche haut.
                     3      % loin droit bas.
                     4      % loin gauche bas.
                     5      % hors l‘axe du graphe.


Exemple         : diagramme circulaire

x= [100 10 25 45]
detache= [1 0 0 1]
etiquette= {‗investissement‘,‘taxe‘,‘frais‘, bénéfice‘}
pie(x, detache, etiquette)


3D-Looking :
pie3(x, detache, etiquette)




19                                                           blogmatlab.blogspot.com
Interfaces graphiques sous Matlab                       Support du cours




Exercice      :   Paraboloïde

Tracer le paraboloïde d‘équation : z2=x2+y2
 Pour :  50  x  50 et  50  y  50

     Solution 1 : (02 boucles)

      N=50 ;
      x=-N:N ;
      y=-N:N ;
      figure ;
      for k=1:2*N+1
          for l=1 :2*N+1
             z1 (k, l)=sqrt(x (k) ^2+y (l) ^2) ;
          end
      end
      meshc(x,y,z1) ;
      xlabel ('x') ; ylabel ('y') ; zlabel ('z') ;
      title ('Exemple de tracé d‘un paraboloïde');




20                                                   blogmatlab.blogspot.com
Interfaces graphiques sous Matlab      Support du cours




21                                  blogmatlab.blogspot.com

Contenu connexe

Tendances

algo et complexité .pptx
algo et complexité  .pptxalgo et complexité  .pptx
algo et complexité .pptx
tarekjedidi
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
vangogue
 
Travelling salesman dynamic programming
Travelling salesman dynamic programmingTravelling salesman dynamic programming
Travelling salesman dynamic programming
maharajdey
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
pierrepo
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
Sana Aroussi
 

Tendances (20)

Cours compilation
Cours compilationCours compilation
Cours compilation
 
algo et complexité .pptx
algo et complexité  .pptxalgo et complexité  .pptx
algo et complexité .pptx
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Examen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de donnéesExamen principal - Algorithme & Structures de données
Examen principal - Algorithme & Structures de données
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
Introduction a la compilation Analyse Syntaxique - C3
Introduction a la compilation  Analyse Syntaxique - C3Introduction a la compilation  Analyse Syntaxique - C3
Introduction a la compilation Analyse Syntaxique - C3
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statique
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Travelling salesman dynamic programming
Travelling salesman dynamic programmingTravelling salesman dynamic programming
Travelling salesman dynamic programming
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Ch1 _ les enregistrements.pdf
Ch1 _ les enregistrements.pdfCh1 _ les enregistrements.pdf
Ch1 _ les enregistrements.pdf
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
 
Chap1 dsp
Chap1 dspChap1 dsp
Chap1 dsp
 
Introduction au Deep Learning
Introduction au Deep Learning Introduction au Deep Learning
Introduction au Deep Learning
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Cryptologie
Cryptologie Cryptologie
Cryptologie
 

Similaire à Ebook matlab

Mat lab1
Mat lab1Mat lab1
Mat lab1
fouadDD
 
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
Tarik Taleb Bendiab
 
mis
mismis
mis
ISIG
 
Visual studio
Visual studioVisual studio
Visual studio
ISIG
 

Similaire à Ebook matlab (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
 
Support matlab st
Support matlab stSupport matlab st
Support matlab st
 
Initiation r
Initiation rInitiation r
Initiation r
 
syntax-matlab.pdf
syntax-matlab.pdfsyntax-matlab.pdf
syntax-matlab.pdf
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
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
 
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN C
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN CProjet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN C
Projet.pptx PRESENTATION DU PROJET DE PROGAMMATION EN C
 
TP5_2020.pdf
TP5_2020.pdfTP5_2020.pdf
TP5_2020.pdf
 
mis
mismis
mis
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 
Les vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdfLes vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdf
 
Visual studio
Visual studioVisual studio
Visual studio
 
Les vecteurs seconde2020.pptx
Les vecteurs seconde2020.pptxLes vecteurs seconde2020.pptx
Les vecteurs seconde2020.pptx
 
Tp3 matlab
Tp3 matlabTp3 matlab
Tp3 matlab
 
Tp01
Tp01Tp01
Tp01
 
Convention Algorithmique AS 2022-2023.pdf
Convention Algorithmique AS 2022-2023.pdfConvention Algorithmique AS 2022-2023.pdf
Convention Algorithmique AS 2022-2023.pdf
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
courstic2.pptx
courstic2.pptxcourstic2.pptx
courstic2.pptx
 
Chap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptxChap1_Entrees_Sorties.pptx
Chap1_Entrees_Sorties.pptx
 

Plus de N NASRI (9)

Activite association errahma bejaia
Activite association errahma bejaiaActivite association errahma bejaia
Activite association errahma bejaia
 
Conversion numérique analogique
Conversion numérique analogiqueConversion numérique analogique
Conversion numérique analogique
 
Lois fondamentales electricite
Lois fondamentales electriciteLois fondamentales electricite
Lois fondamentales electricite
 
Dimensionnement chauffeau
Dimensionnement chauffeauDimensionnement chauffeau
Dimensionnement chauffeau
 
Thérorie salaire
Thérorie salaireThérorie salaire
Thérorie salaire
 
Math
MathMath
Math
 
Logique0
Logique0Logique0
Logique0
 
Humouraugmentation
HumouraugmentationHumouraugmentation
Humouraugmentation
 
Fable bureau
Fable bureauFable bureau
Fable bureau
 

Dernier

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Dernier (20)

Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 

Ebook matlab

  • 1. Interfaces graphiques sous Matlab Support du cours Support du cours Interfaces graphiques sous Matlab Préparé par : Mr N.Nasri 1 blogmatlab.blogspot.com
  • 2. Interfaces graphiques sous Matlab Support du cours 1 - Introduction : MATLAB (MATrix LABoratory) est un logiciel basé sur le calcul matriciel. Son noyau est composé de librairies écrites au début en Fortran puis en C++. Il permet : – le calcul numérique. – le tracé de graphiques. – la programmation. – l‘interfaçage avec d‘autres langages (Fortran, C++). – le développement d‘interface utilisateur (GUI). – l‘utilisation des boites à outils (Toolboxes) spécialisées. MATLAB présente deux modes de fonctionnement : 1. Le mode interactif : exécution des instructions entrées par l‘utilisateur dans la fenêtre de commande de MATLAB (le Workspace). 2. Le mode exécutif : exécution de ‖programmes‖ ou ‖scripts‖ qui sont des fichiers regroupant une suite d‘instructions (les fichiers M). 2 - Première utilisation de Matlab : Une façon efficace de découvrir Matlab est d'utiliser son aide en ligne.  help : "help" tout seul donne la liste des aides générales possibles.  helpwin : ouvre une fenêtre et donne accès à une aide détaillée.  help + nom d’une commande : indique la syntaxe des graphes en 2D. Exemple : >> help plot  demo : lance une démo générale de Matlab .  help demos : donne une liste des démos existantes. 2 blogmatlab.blogspot.com
  • 3. Interfaces graphiques sous Matlab Support du cours Quelques commandes importantes:  lookfor + nom de commande : donne une liste de toutes les commandes qui ont un rapport avec la nom de commande écrite .  who et whos : donne les noms de variables présentes dans l‘espace de travail.  clear : supprime les variables de l‘espace du travail.  clc : efface l‘écran (sans toucher aux variables !)  exit ou quit : permet de sortir de Matlab  CTRL + C : (touches du clavier) permet d‘interrompre un programme (ie : récupérer la main). Format des variables: x = [4/3 1.2345e-6] format short 1.3333 0.0000 format short e 1.3333e+000 1.2345e-006 format short g 1.3333 1.2345e-006 format long 1.33333333333333 0.00000123450000 format long e 1.333333333333333e+000 1.234500000000000e-006 format long g 1.33333333333333 1.2345e-006 format bank 1.33 0.00 format rat 4/3 1/810045 format hex 3ff5555555555555 3eb4b6231abfd271 Nota : on commence d‘abord par définir le format, puis l‘opération à effectuer ou le nombre à affiché. 3 blogmatlab.blogspot.com
  • 4. Interfaces graphiques sous Matlab Support du cours 3 - Les matrices dans Matlab : Création de matrices : >> A = [a11 …. a1m; …. ; an1 …. anm] Exemple : >> A=[1 2 3 4;2 3 4 1;3 4 1 2;4 1 2 3] Quelques matrices prédéfinies : >> zeros(i,j) : donne une matrice de zéros. >> ones(i,j) : donne une matrice de uns . >> eye(i,j) : donne une matrice identité. >> rand(i,j) ou >> randn(i,j) : donne une matrice d‘éléments aléatoires. - i,j sont des entiers. - pour randn : les éléments sont choisis avec la loi normale. Quelques commandes importantes: >> A(i, :) : désigne la iiéme ligne de la matrice A. >> A(:, j) : désigne la jième colonne de la matrice A. >> A(i:j , :) : désigne la sous matrice formées des iiéme et jième lignes de la matrice A. >> A(:, i:2:j) : désigne la sous matrice formée des colonnes impaires de la matrice A. Nota : le 2 est le pas considéré. >> size(A) : permet d'obtenir la taille de la matrice A. >> max (A) : désigne l‘élément maximal de la matrice A. >> min (A) : désigne l‘élément minimal de la matrice A. >> mean (A) : désigne la moyenne des éléments de matrice A. >> median (A) : désigne la valeur médiane des éléments de matrice A. >> sort (A ) : tri par ordre croissant des éléments de matrice A. >> prod (A) : produit des éléments de matrice A. >> sum (A) : somme des éléments de matrice A. >> expm (A) : exponentielle de matrice A. (important :A doit être carrée) >> sqrtm (A) : racine carrée de la matrice A. (important :A doit être carrée) 4 blogmatlab.blogspot.com
  • 5. Interfaces graphiques sous Matlab Support du cours >> inv (A) : la matrice inverse de A. >> det (A) : déterminant de la matrice A. (important :A doit être carrée) >> eig (A) : valeurs propres et vecteurs propres de la matrice A. >> null (A) : noyau de la matrice A. >> rank (A) : rang de matrice A. Application 1 : Construction élément par élément Ecrire l‘exemple sous Matlab et commenter le résultat. Exemple: >>for i=1:3,for j=1:4, F(i,j)=i+(j-1)*3;end;end; >> F 4 - Opérations sur les polynômes : Nota : un polynôme se déclare comme un vecteur qui contient ses coefficients. Exemple 1 : B(x)=5.X4 +3.X3 +2.X Sous Matlab : >> B=[5 3 0 2 0] ou bien : >> B=[5,3,0,2,0] Quelques commandes importantes: >> Roots (B) : racines du polynôme B. >> polyval (B,x) : évaluer le polynôme (exp: avant de représenter son graphe). >> poly (v) : reconstruit un polynôme à partir de ses racines. 5 – Graphisme dans Matlab : Gestion des graphiques à 2d : >> Plot (y) : représente le graphe de la fonction y. >> title (‗ expression ‘) : affiche le titre du graphe. >> Xlabel (‗expression ‘) : affiche l‘étiquette à l‘axe des abscisses. >> Ylabel (‗expression ‘) : affiche l‘étiquette à l‘axe des ordonnées. 5 blogmatlab.blogspot.com
  • 6. Interfaces graphiques sous Matlab Support du cours >> grid on : affiche la grille. >> grid off : masque la grille. >> hold on : affiche une seconde courbe dans une meme figure. >> clf : efface le graphe . >> stem (y) : représente la séquence de données (discrètes) y. Application : x = 0:pi/100:2*pi; y = sin(x); y2 = sin(x-.25); y3 = sin(x-.5); plot(x,y,x,y2,x,y3) legend('sin(x)','sin(x-.25)','sin(x-.5)') Le style et Couleurs des lignes : >> plot (x,y,'style_couleur_marker') • Couleur : 'c', 'm' 'y' 'r' 'g' 'b' 'w' 'k' [cyan, magenta, yellow, red, green, blue, white et black]. • Style : '-' '--' ':' '-.' Exemple : >> plot (y, ‘linestyle‘,‘—‗) ; • Marker : '+' 'o' '*' ‗x' ‗s' 'd' ' ^' 'v' '>' '<' 'p' 'h' Utilisation du Handle : Quand Matlab crée des objets, il leurs affecte un identifiant appelé ―handle‖. Ce dernier est utilisé pour acceder aux propriétés de l‘objet grace aux instructions : ―set ― et ―get ―. Exemple : >> x = 1:10; >> y = x.^3; >> h = plot(x,y); Pour changer de couleur , on ecrit : set(h,'Color','red') Pour changer le style de ligne , on ecrit : set(h,'LineWidth', 6); 6 blogmatlab.blogspot.com
  • 7. Interfaces graphiques sous Matlab Support du cours 6 - Gestion des Images : Lire et afficher une Image : I = imread ('nom_image.ext'); figure, imshow (I) Redimensionner une Image : J = imresize(I,0.6); figure, imshow (J) % --- Affichage ---* (Le 0.6 est le facteur d‘échelle) Retourner une Image : K = imrotate (I,30); figure, imshow(K) (Le 30 est le facteur d‘échelle) 7 - Gestion de l’audio : Lecture d‘un son : >> y = wavread('Nom.wav'); : Nom.wav Fichier qui se trouve dans le dossier Work. >> wavplay(y, F) : F représente la fréquence. % (Poser F=20000, puis changer de valeur pour voir son effet). >> sound(y, F) : Convertir le signal y en un son. >> aviread (y) : lire les fichiers AVI (Audio / Video Interleaved). Enregistrer un son : >> wavwrite (y, F, ‗nom_fichier‘) : sauvegarde le signal y dans un fichier au format Wav. 8 - Programmation en Matlab : Les fonctions élémentaires : Un certain nombre de fonctions élémentaires sont prédéfinies : sin, cos, abs,... >> x=[0:0.5:pi] >> sin(x) >> x=[0:0.2:10] >> exp(x) 7 blogmatlab.blogspot.com
  • 8. Interfaces graphiques sous Matlab Support du cours Fonctions et script :  Exemple de fonction : écrire ce programme et l‘enregistrer sous nom : trinome.m % --- calcul des solutions de l'équation a*x^2+b*x+c=0 ---* function r =trinome(a,b,c) delta=b^2-4*a*c; if delta==0 r(1)=-b/2; else delta > 0 r(1)=(-b-sqrt(delta))/2*a; r(2)=(-b+sqrt(delta))/2*a; end disp(['delta == ', num2str(delta)]); disp(['la solution est ', num2str(r)]);  Utilisation de la fonction dans un script: écrire ce programme et l‘enregistrer sous nom : trinome3.m % --- calcul des solutions de l'équation a*x^2+b*x+c=0 ---* disp ('Ceci est un script qui calcul des solutions de l''équation a*x^2+b*x+c=0'); disp ('Donner la valeur de a') a=input ('a = '); disp ('Donner la valeur de b') b=input ('b = '); disp ('Donner la valeur de c') c=input ('c = '); trinome (a,b,c); % appel de la fonction aux parameters a,b,c Remarque : Cette fonction ne prend pas en considération le cas ou ( a=0, b=0, c=0=). - Modifier trinome2.m afin d‘avoir une solution complète. 8 blogmatlab.blogspot.com
  • 9. Interfaces graphiques sous Matlab Support du cours  Exemple de script: écrire ce programme et l‘enregistrer sous nom : trinome2.m % --- calcul des solutions de l'équation a*x^2+b*x+c=0 ---* disp ('Ceci est un script qui calcul des solutions de l''équation a*x^2+b*x+c=0'); disp ('Donner la valeur de a') a=input ('a = '); disp ('Donner la valeur de b') b=input ('b = '); disp ('Donner la valeur de c') c=input ('c = '); delta=b^2-4*a*c; if delta==0 r(1)=-b/2; else delta >0 r(1)=(-b-sqrt(delta))/2*a; r(2)=(-b+sqrt(delta))/2*a; end disp (['delta == ', num2str(delta)]); disp (['la solution est ', num2str(r)]); 9 blogmatlab.blogspot.com
  • 10. Interfaces graphiques sous Matlab Support du cours 9 - Conception de l’interface graphique GUI : [Graphical User Interface] Avantage des GUI : La productivité. Basculer entre plusieurs applications sans perdre beaucoup du temps. (Exemple : dans l‘environnement Windows, passer entre Word, Explorer, Excel, Media player, .. se fait de manière très rapide). Etapes de Conception : Il clair qu‘il ne suffit pas de s‘asseoir et de se mettre à programmer. Il faut passer par certaines étapes : Description Analyse Interface Du Du Algorithme Programme Graphique Problème Problème Prendre un cahier et un crayon  Planifier : définir le but de l‘interface  Analyse : définir le problème à résoudre. (Rassembler les équations mathématiques nécessaires)  Le Cahier de charge : définir les fonctions et taches en détails. (Enumérer les différentes taches voulues et rassembler les données nécessaires)  La Conception : compléter le cahier de charge avec les détails de conception : - Développer le design. - Exemples d’écran (taille des fenêtres...). - Disposition des boutons. - Les couleurs, la forme d’écriture. (Ces détails dépendent de votre cible [A qui est destiné votre interface). Maintenant on passe à l‘étape de programmation :  Le Codage : qui ne se termine jamais (ie : il y a toujours des modifications).  Le Test : tester les différentes fonctions avec différentes « inputs ». (Il conseillé de refaire le test plusieurs fois). 10 blogmatlab.blogspot.com
  • 11. Interfaces graphiques sous Matlab Support du cours Principes de Conception : Garder à l‘esprit les sept principes qui ont guidé l‘écriture de Windows.  L’utilisateur doit avoir le contrôle : l‘utilisateur doit sentir que c‘est lui qui à l‘initiative d‘une action au lieu de réagir à l‘ordinateur.  Etre direct : une image vaut mille mots. (les différentes fonctions doivent être visuellement intuitives).  La Cohérence : votre interface doit être cohérente avec Windows, l‘utilisateur ne doit pas passer son temps à apprendre votre application( c‘est la cohérence externe). (L‘interface doit présenté une cohérence interne : entre les différentes fenêtres). Exemple : Si le raccourci clavier Ctrl + C : sert à copier dans une fenêtre, il faut pas l‘utiliser pour une autre fonction dans une autre fenêtre.  Etre magnanime : si l‘on est sur le point d‘effectuer une action qui formatera le disque dur, une boite de dialogue apparaît est prévient de ce qui risque d‘arriver. ie : Toutes les actions de l‘utilisateur doivent être réversible ou corrigible ;et il doit être prévenu à l‘aide des boites du dialogue.  Du répondant : « faire toujours savoir à l‘utilisateur ce qui se passe » . - Barre de chargement - Boite de dialogue - Indices visuels et sonores - Messages d‘erreur - Changement de la forme du curseur  De l’esthétique : - Couleur - Design - Disposition des objets  De la simplicité : la GUI doit être facile d‘apprentissage et d‘usage . ie : permettre l‘accès à toutes les fonctions et informations de l‘application, tout en gardant la manipulation aussi simple que possible. Eviter de trop écrire : écrivez Nom au lieu de Nom du client. (Il faut s‘exprimer avec un minimum de mots sans pour autant perdre en sens). 11 blogmatlab.blogspot.com
  • 12. Interfaces graphiques sous Matlab Support du cours Exemple de GUI par programmation : On veut reprendre la fonction trinome.m et l‘utiliser dans une interface. Ecrire ce code et sauvegarder le sous le nom : second_degre.m . % --- calcul des solutions de l'équation a*x^2+b*x+c=0 ---* close all clear all %création de la fenêtre graphique figure (1) % titre principal txt_principal = uicontrol(gcf, ... 'style', 'text', ... 'position',[30 340 500 45],... 'string',' Calcul des solutions de l''équation : a*x^2+b*x+c=0') ; % création des zones éditables ed_a = uicontrol(gcf, ... 'style', 'edit', ... 'position',[275 230 100 20]) ed_b = uicontrol(gcf, ... 'style', 'edit',... 'position',[275 200 100 20]) ed_c = uicontrol(gcf, ... 'style', 'edit', ... 'position',[275 170 100 20]) ed_delta = uicontrol(gcf, ... 'style', 'edit',... 'position',[275 110 200 20]) ed_sol = uicontrol(gcf,... 'style', 'edit', ... 'position',[275 80 200 20]) % création des boutons % le bouton Fermer clabel = 'Fermer' cpos = [370 30 180 20] ; ccallback = 'close all ; clear all' ; 12 blogmatlab.blogspot.com
  • 13. Interfaces graphiques sous Matlab Support du cours bp_fermer = uicontrol(gcf, ... 'style', 'push', ... 'position',cpos,... 'string',clabel,... 'callback', ccallback) ; % le bouton Résolution clabel = 'Résolution' cpos = [130 140 180 20] ; ccallback=['a=str2num(get(ed_a,''string'')),'... 'b=str2num(get(ed_b,''string'')),'... 'c=str2num(get(ed_c,''string'')),'... 'trinome(a,b,c),'... % le fichier modifié 'load delta,'... 'load solution,'... 'set(ed_delta,''string'',num2str(delta)),'... 'set(ed_sol,''string'',num2str(r))'] bp_resolution = uicontrol(gcf, ... 'style', 'push',... 'position',cpos,... 'string',clabel,... 'callback',ccallback); Nota : La fenêtre peut être personnalisé : Hfenetre= figure (‗Name‘, ‗nom_fenetre‘ , … ‗NumberTitle‘, ‗off‘, … ‗Resize‘ , ‗off‘, … ‗Position‘, [x y largeur hauteur]) 13 blogmatlab.blogspot.com
  • 14. Interfaces graphiques sous Matlab Support du cours 10 - Création d’une interface graphique avec MATLAB GUIDE L'environnement GUIDE de Matlab permet de développer des GUI, des interfaces graphiques. Un GUI est défini dans Matlab par deux fichiers dépendants, respectivement une figure et un script. La programmation d'un GUI utilise des callbacks, et les échanges de données s'opèrent avec des handlers. Éléments de base - Fiche et composants visuels (aspect visuel). - Code définissant fonctionnement de l‘interface (aspect fonctionnement). Création d’une nouvelle interface – Ligne de commande MATLAB : tapez « guide » – Dans la fenêtre « GUIDE Quick Start », choisissez l‘onglet « Create New GUI ». – Une fiche vierge quadrillée apparaît à l‘écran sur laquelle vous placerez les composants visuels de l‘interface graphique. Palette des composants visuels : • « Push buttons » : (boutons poussoirs)  Un seul état (stable).  Identifié avec un court texte (paramètre ‗String‘).  Événement à traiter: clic ou relâchement du bouton gauche de la souris. • « Checkboxes » : (cases à cocher)  Deux états possibles.  Boutons d‘un même groupe sont indépendants (plusieurs options peuvent être sélectionnées simultanément). • « Radio buttons » : (boutons radio)  Deux états (comme case à cocher).  Boutons d‘un même groupe sont mutuellement exclusifs (une seule option peut être sélectionnée à la fois). • « Frames » : (cadres)  Bordure rectangulaire délimitant un groupe de contrôles. • « Static text » : (champ de texte fixe)  Affichage de texte. • « Edit text » : (champ de texte éditable)  Saisie de texte.  Pas pour affichage. 14 blogmatlab.blogspot.com
  • 15. Interfaces graphiques sous Matlab Support du cours • « Pop-up menus » : (menus déroulants)  Choix d‘un item parmi une liste.  Seul l‘item sélectionné est affiché.  Événement à traiter : item cliqué par la souris. • « Sliders » : (barres de défilement)  Choix d‘une valeur numérique à l‘intérieur d‘un intervalle.  Peuvent être orientées horizontalement ou verticalement.  Événement à traiter : déplacement de la barre. • « Listboxes » : (listes)  Choix d‘un item parmi une liste.  Un groupe d‘items, dont l‘item sélectionné, est affiché.  Événement à traiter: item choisi par clic de la souris. • Menus : (à partir du MenuEditor)  Choix d‘un item parmi une liste d‘options permises ou non.  Possibilité de clé de raccourcis.  Possibilité de sous-menus.  Événement à traiter: item de menu choisi par clic de souris. • Axes :  Permet d‘afficher un graphique tracé par MATLAB  Permet d‘afficher des fichiers image  Événement à traiter: l‘utilisateur clique sur la souris lorsque le curseur se trouve à l‘intérieur des bornes du composant. 15 blogmatlab.blogspot.com
  • 16. Interfaces graphiques sous Matlab Support du cours Accès aux données associées aux composants visuels À tout objet d'interface, Matlab associe un pointeur qui permet d'accéder aux propriétés, le handler. Certains handlers sont déjà définis par défaut :  gcf : handler de la figure courante (get current figure).  gca : axes courants de tracé (get current axes).  gcbf : la figure cliquée (get callback figure).  gcbo : l'objet qui appelle (celui sur lequel on a cliqué).  0 : la fenêtre interpréteur Matlab, ou racine. Certaines instructions nécessitent un handler :  get et set : respectivement pour lire et pour changer les valeurs des propriétés.  findobj : pour retrouver le handler d'un objet.  propedit : pour éditer les propriétés d'un objet.  delete : pour effacer un objet.  Exemple de GUI : construire sous GUIDE la fenêtre suivante et l‘enregistrer sous nom : second –degre2.m 16 blogmatlab.blogspot.com
  • 17. Interfaces graphiques sous Matlab Support du cours Ecrire au niveau du bouton « Résolution » le programme suivant : h=findobj (gcbf,'tag','edit_a'); a=str2num (get (h,'string')); h=findobj (gcbf,'tag','edit_b'); b=str2num (get (h,'string')); h=findobj (gcbf,'tag','edit_c'); c=str2num (get (h,'string')); trinome(a,b,c) % utilisation de la fonction programmée auparavant. load delta; load solution; % --- Affichage ----- h=findobj (gcbf,'tag','edit_delta'); set (h,'string',num2str(delta)); h=findobj (gcbf,'tag','edit_sol'); set (h,'string',num2str(r)); Modifier le fichier trinome.m en ajoutant ces deux instructions : save delta delta; save solution r; 17 blogmatlab.blogspot.com
  • 18. Interfaces graphiques sous Matlab Support du cours Annexe : Exemple : les vecteurs Sur un ensemble de notes entre 0 et 20. - Calculer le nombre de notes>= 10. - Calculer le nombre de notes >=moyenne des notes. Le programme : disp (' *** N''oubliez pas les crochets ***') ; Note = input('Note == '); Taille= length(Note); Somme=0; for i=1:Taille Somme=Somme+Note(i); end moy=Somme/Taille ; N10=0; Nmoy=0; for i =1:Taille if Note (i)>=10 N10=N10+1; end if Note (i)>=moy Nmoy=Nmoy+1; end end disp (['nombre de notes sup à 10 :' num2str(N10)]); disp (['nombre de notes sup à la moyonne :' num2str(Nmoy)]); 18 blogmatlab.blogspot.com
  • 19. Interfaces graphiques sous Matlab Support du cours Exemple : Graphe (légende) X=0 :0.1 :1 Sinx en tirets cosx en couleur rouge Plot ( x, sinx, ‘-‗, x, cosx, ‘r‘) Variables fonctions à représenter Xlabel (‗ titre‘) % titre = fonction sinx/cosx ylabel (‗ titre‘) % titre = x legend (‗sinx‘,‘cosx‘,1) % loin droit haut. 2 % loin gauche haut. 3 % loin droit bas. 4 % loin gauche bas. 5 % hors l‘axe du graphe. Exemple : diagramme circulaire x= [100 10 25 45] detache= [1 0 0 1] etiquette= {‗investissement‘,‘taxe‘,‘frais‘, bénéfice‘} pie(x, detache, etiquette) 3D-Looking : pie3(x, detache, etiquette) 19 blogmatlab.blogspot.com
  • 20. Interfaces graphiques sous Matlab Support du cours Exercice : Paraboloïde Tracer le paraboloïde d‘équation : z2=x2+y2 Pour :  50  x  50 et  50  y  50 Solution 1 : (02 boucles) N=50 ; x=-N:N ; y=-N:N ; figure ; for k=1:2*N+1 for l=1 :2*N+1 z1 (k, l)=sqrt(x (k) ^2+y (l) ^2) ; end end meshc(x,y,z1) ; xlabel ('x') ; ylabel ('y') ; zlabel ('z') ; title ('Exemple de tracé d‘un paraboloïde'); 20 blogmatlab.blogspot.com
  • 21. Interfaces graphiques sous Matlab Support du cours 21 blogmatlab.blogspot.com