Ebook Matlab: Interfaces Graphiques
Ebook Matlab: Interfaces Graphiques
Ebook Matlab: Interfaces Graphiques
Support du cours
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.
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
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 !)
x = [4/3 1.2345e-6]
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
>> 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é.
4 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
5 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
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)')
• 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
7 - Gestion de l’audio :
Lecture d‘un son :
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
function r =trinome(a,b,c)
delta=b^2-4*a*c;
if delta==0
r(1)=-b/2;
end
disp(['delta == ', num2str(delta)]);
disp(['la solution est ', num2str(r)]);
Remarque :
8 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
disp ('Ceci est un script qui calcul des solutions de l''équation a*x^2+b*x+c=0');
delta=b^2-4*a*c;
if delta==0
r(1)=-b/2;
end
9 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
Etapes de Conception :
Il clair qu‘il ne suffit pas de s‘asseoir et de se mettre à programmer. Il faut passer par
certaines étapes :
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).
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.
De l’esthétique :
- Couleur
- Design
- Disposition des objets
11 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
% 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') ;
ed_sol = uicontrol(gcf,...
'style', 'edit', ...
'position',[275 80 200 20])
12 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
% 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))']
Nota :
La fenêtre peut être personnalisé :
13 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
Éléments de base
- Fiche et composants visuels (aspect visuel).
- Code définissant fonctionnement de l‘interface (aspect fonctionnement).
• « Frames » : (cadres)
Bordure rectangulaire délimitant un groupe de contrôles.
14 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
• « 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.
• 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
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
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'));
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));
17 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
Annexe :
Le programme :
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
18 blogmatlab.blogspot.com
Interfaces graphiques sous Matlab Support du cours
X=0 :0.1 :1
Sinx en tirets cosx en couleur rouge
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
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