Вы находитесь на странице: 1из 21

Interfaces graphiques sous Matlab

Support du cours

Support du cours Interfaces graphiques sous Matlab

Prpar par : Mr N.Nasri

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 dbut en Fortran puis en C++. Il permet : le calcul numrique. le trac de graphiques. la programmation. linterfaage avec dautres langages (Fortran, C++). le dveloppement dinterface utilisateur (GUI). lutilisation des boites outils (Toolboxes) spcialises.

MATLAB prsente deux modes de fonctionnement : 1. Le mode interactif : excution des instructions entres par lutilisateur dans la fentre de commande de MATLAB (le Workspace). 2. Le mode excutif : excution de programmes ou scripts qui sont des fichiers regroupant une suite dinstructions (les fichiers M).

2 - Premire utilisation de Matlab : Une faon efficace de dcouvrir Matlab est d'utiliser son aide en ligne. help : "help" tout seul donne la liste des aides gnrales possibles. helpwin : ouvre une fentre et donne accs une aide dtaille. help + nom dune commande : indique la syntaxe des graphes en 2D. Exemple : >> help plot demo : lance une dmo gnrale de Matlab . help demos : donne une liste des dmos existantes.

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab


Quelques commandes importantes:

Support du cours

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 prsentes dans lespace de travail. clear : supprime les variables de lespace du travail. clc : efface lcran (sans toucher aux variables !) exit ou quit : permet de sortir de Matlab CTRL + C : (touches du clavier) permet dinterrompre un programme (ie : rcuprer la main).

Format des variables: x = [4/3 1.2345e-6] format format format format format format format format format short short e short g long long e long g bank rat hex 1.3333 1.3333e+000 1.3333 1.33333333333333 1.333333333333333e+000 1.33333333333333 1.33 4/3 3ff5555555555555 0.0000 1.2345e-006 1.2345e-006 0.00000123450000 1.234500000000000e-006 1.2345e-006 0.00 1/810045 3eb4b6231abfd271

Nota : on commence dabord par dfinir le format, puis lopration effectuer ou le nombre affich.

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab


3 - Les matrices dans Matlab : Cration de matrices : >> A = [a11 . a1m; . ; an1 . anm]

Support du cours

Exemple :

>> A=[1 2 3 4;2 3 4 1;3 4 1 2;4 1 2 3]

Quelques matrices prdfinies : >> zeros(i,j) : donne une matrice de zros. >> 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 dlments alatoires. - i,j sont des entiers. - pour randn : les lments sont choisis avec la loi normale.

Quelques commandes importantes: >> A(i, :) : dsigne la iime ligne de la matrice A. >> A(:, j) : dsigne la jime colonne de la matrice A. >> A(i:j , :) : dsigne la sous matrice formes des iime et jime lignes de la matrice A. >> A(:, i:2:j) : dsigne la sous matrice forme des colonnes impaires de la matrice A. Nota : le 2 est le pas considr. >> size(A) >> max (A) >> min (A) >> mean (A) >> median (A) : permet d'obtenir la taille de la matrice A. : dsigne llment maximal de la matrice A. : dsigne llment minimal de la matrice A. : dsigne la moyenne des lments de matrice A. : dsigne la valeur mdiane des lments de matrice A.

>> sort (A ) >> prod (A) >> sum (A) >> expm (A) >> sqrtm (A)

: tri par ordre croissant des lments de matrice A. : produit des lments de matrice A. : somme des lments de matrice A. : exponentielle de matrice A. (important :A doit tre carre) : racine carre de la matrice A. (important :A doit tre carre)

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

>> inv (A) >> det (A) >> eig (A) >> null (A) >> rank (A)

: la matrice inverse de A. : dterminant de la matrice A. (important :A doit tre carre) : valeurs propres et vecteurs propres de la matrice A. : noyau de la matrice A. : rang de matrice A.

Application 1 : Construction lment par lment Ecrire lexemple sous Matlab et commenter le rsultat. Exemple: >>for i=1:3,for j=1:4, F(i,j)=i+(j-1)*3;end;end; >> F

4 - Oprations sur les polynmes : Nota : un polynme se dclare 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 polynme B. >> polyval (B,x) : valuer le polynme (exp: avant de reprsenter son graphe). >> poly (v) : reconstruit un polynme partir de ses racines.

5 Graphisme dans Matlab : Gestion des graphiques 2d : >> Plot (y) : reprsente le graphe de la fonction y. >> title ( expression ) : affiche le titre du graphe. >> Xlabel (expression ) : affiche ltiquette laxe des abscisses. >> Ylabel (expression ) : affiche ltiquette laxe des ordonnes.

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

>> grid on >> grid off >> hold on >> clf >> stem (y)

: affiche la grille. : masque la grille. : affiche une seconde courbe dans une meme figure. : efface le graphe . : reprsente la squence de donnes (discrtes) 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]. '-' '--' 'o' ':' '*' x' '-.' s' Exemple : >> plot (y, linestyle,) ; 'd' ' ^' 'v' '>' '<' 'p' 'h'

Style :

Marker : '+'

Utilisation du Handle : Quand Matlab cre des objets, il leurs affecte un identifiant appel handle. Ce dernier est utilis pour acceder aux proprits de lobjet 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);

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab


6 - Gestion des Images : Lire et afficher une Image :

Support du cours

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 dchelle) Retourner une Image : K = imrotate (I,30); figure, imshow(K) (Le 30 est le facteur dchelle)

7 - Gestion de laudio : Lecture dun son : >> y = wavread('Nom.wav'); : Nom.wav Fichier qui se trouve dans le dossier Work. >> wavplay(y, F) : F reprsente la frquence. % (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 lmentaires : Un certain nombre de fonctions lmentaires sont prdfinies : sin, cos, abs,... >> x=[0:0.5:pi] >> sin(x) >> x=[0:0.2:10] >> exp(x)

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

Fonctions et script : Exemple de fonction : crire ce programme et lenregistrer 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 lenregistrer 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 considration le cas ou ( a=0, b=0, c=0=). - Modifier trinome2.m afin davoir une solution complte.

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

Exemple de script: crire ce programme et lenregistrer 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)]);

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

9 - Conception de linterface graphique GUI : [Graphical User Interface] Avantage des GUI : La productivit. Basculer entre plusieurs applications sans perdre beaucoup du temps. (Exemple : dans lenvironnement Windows, passer entre Word, Explorer, Excel, Media player, .. se fait de manire trs rapide). Etapes de Conception : Il clair quil ne suffit pas de sasseoir et de se mettre programmer. Il faut passer par certaines tapes :
Description Du Problme Analyse Du Problme Interface Graphique

Algorithme

Programme

Prendre un cahier et un crayon Planifier : dfinir le but de linterface Analyse : dfinir le problme rsoudre. (Rassembler les quations mathmatiques ncessaires) Le Cahier de charge : dfinir les fonctions et taches en dtails. (Enumrer les diffrentes taches voulues et rassembler les donnes ncessaires) La Conception : complter le cahier de charge avec les dtails de conception : - Dvelopper le design. - Exemples dcran (taille des fentres...). - Disposition des boutons. - Les couleurs, la forme dcriture. (Ces dtails dpendent de votre cible [A qui est destin votre interface). Maintenant on passe ltape de programmation : Le Codage : qui ne se termine jamais (ie : il y a toujours des modifications). Le Test : tester les diffrentes fonctions avec diffrentes inputs . (Il conseill de refaire le test plusieurs fois).

10

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

Principes de Conception : Garder lesprit les sept principes qui ont guid lcriture de Windows. Lutilisateur doit avoir le contrle : lutilisateur doit sentir que cest lui qui linitiative dune action au lieu de ragir lordinateur. Etre direct : une image vaut mille mots. (les diffrentes fonctions doivent tre visuellement intuitives). La Cohrence : votre interface doit tre cohrente avec Windows, lutilisateur ne doit pas passer son temps apprendre votre application( cest la cohrence externe). (Linterface doit prsent une cohrence interne : entre les diffrentes fentres). Exemple : Si le raccourci clavier Ctrl + C : sert copier dans une fentre, il faut pas lutiliser pour une autre fonction dans une autre fentre. Etre magnanime : si lon est sur le point deffectuer une action qui formatera le disque dur, une boite de dialogue apparat est prvient de ce qui risque darriver. ie : Toutes les actions de lutilisateur doivent tre rversible ou corrigible ;et il doit tre prvenu laide des boites du dialogue. Du rpondant : faire toujours savoir lutilisateur ce qui se passe . - Barre de chargement - Boite de dialogue - Indices visuels et sonores - Messages derreur - Changement de la forme du curseur De lesthtique : - Couleur - Design - Disposition des objets De la simplicit : la GUI doit tre facile dapprentissage et dusage . ie : permettre laccs toutes les fonctions et informations de lapplication, tout en gardant la manipulation aussi simple que possible. Eviter de trop crire : crivez Nom au lieu de Nom du client. (Il faut sexprimer avec un minimum de mots sans pour autant perdre en sens).

11

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab


Exemple de GUI par programmation :

Support du cours

On veut reprendre la fonction trinome.m et lutiliser 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 %cration de la fentre 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') ; % cration 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]) % cration 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 Rsolution clabel = 'Rsolution' 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 fentre 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 - Cration dune interface graphique avec MATLAB GUIDE

L'environnement GUIDE de Matlab permet de dvelopper des GUI, des interfaces graphiques. Un GUI est dfini dans Matlab par deux fichiers dpendants, respectivement une figure et un script. La programmation d'un GUI utilise des callbacks, et les changes de donnes s'oprent avec des handlers.

lments de base - Fiche et composants visuels (aspect visuel). - Code dfinissant fonctionnement de linterface (aspect fonctionnement). Cration dune nouvelle interface Ligne de commande MATLAB : tapez guide Dans la fentre GUIDE Quick Start , choisissez longlet Create New GUI . Une fiche vierge quadrille apparat lcran sur laquelle vous placerez les composants visuels de linterface graphique. Palette des composants visuels : Push buttons : (boutons poussoirs) Un seul tat (stable). Identifi avec un court texte (paramtre String). vnement traiter: clic ou relchement du bouton gauche de la souris. Checkboxes : (cases cocher) Deux tats possibles. Boutons dun mme groupe sont indpendants (plusieurs options peuvent tre slectionnes simultanment). Radio buttons : (boutons radio) Deux tats (comme case cocher). Boutons dun mme groupe sont mutuellement exclusifs (une seule option peut tre slectionne la fois). Frames : (cadres) Bordure rectangulaire dlimitant un groupe de contrles. 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 droulants) Choix dun item parmi une liste. Seul litem slectionn est affich. vnement traiter : item cliqu par la souris.

Sliders :

(barres de dfilement) Choix dune valeur numrique lintrieur dun intervalle. Peuvent tre orientes horizontalement ou verticalement. vnement traiter : dplacement de la barre.

Listboxes : (listes) Choix dun item parmi une liste. Un groupe ditems, dont litem slectionn, est affich. vnement traiter: item choisi par clic de la souris. Menus : ( partir du MenuEditor) Choix dun item parmi une liste doptions permises ou non. Possibilit de cl de raccourcis. Possibilit de sous-menus. vnement traiter: item de menu choisi par clic de souris. Axes : Permet dafficher un graphique trac par MATLAB Permet dafficher des fichiers image vnement traiter: lutilisateur clique sur la souris lorsque le curseur se trouve lintrieur des bornes du composant.

15

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

Accs aux donnes associes aux composants visuels tout objet d'interface, Matlab associe un pointeur qui permet d'accder aux proprits, le handler. Certains handlers sont dj dfinis par dfaut : gcf : handler de la figure courante (get current figure). gca : axes courants de trac (get current axes). gcbf : la figure clique (get callback figure). gcbo : l'objet qui appelle (celui sur lequel on a cliqu). 0 : la fentre interprteur Matlab, ou racine. Certaines instructions ncessitent un handler : get et set : respectivement pour lire et pour changer les valeurs des proprits. findobj : pour retrouver le handler d'un objet. propedit : pour diter les proprits d'un objet. delete : pour effacer un objet.

Exemple de GUI : construire sous GUIDE la fentre suivante et lenregistrer sous nom : second degre2.m

16

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

Ecrire au niveau du bouton Rsolution 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 programme 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 (lgende)

X=0 :0.1 :1 Sinx en tirets Plot ( x, sinx, -, x, cosx, r) Variables fonctions reprsenter cosx en couleur rouge

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 laxe du graphe.

Exemple

: diagramme circulaire

x= [100 10 25 45] detache= [1 0 0 1] etiquette= {investissement,taxe,frais, bnfice} pie(x, detache, etiquette)

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

19

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

Exercice

Parabolode

Tracer le parabolode dquation : 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 dun parabolode');

20

blogmatlab.blogspot.com

Interfaces graphiques sous Matlab

Support du cours

21

blogmatlab.blogspot.com

Вам также может понравиться