Bonjour à tous!
Après avoir fais une recherche et lu plusieurs tutos je ne trouve pas de réponse à ma question.
Voici ma requête :
J'aimerais pouvoir faire agir deux popmenu entre eux sur un seul axe.
Par exemple, mon premier popmenu me permet de tracer une courbe du type:
avec la fonction callback associée suivante comprenant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 global f % la figure global t global a % l’axe ou la courbe sera tracée global hpopup global hradio global hslider global hlabel l t=-1:0.001:1; % creer la figure en precisant sa position et dimension en pixels f = figure('Position', [100 100 500 500]); % puis creer l'axe en precisant sa position et dimension en pixels a = axes('Units', 'pixels', 'Position', [50 55 400 350]); % creer un popup menu pour le choix de la fonction hpopup = uicontrol(f, ... 'Style', 'popupmenu', ... 'String', 'f|g|h|i|', ... 'Position', [10 465 90 25], ... 'Callback', 'tracer_fonction');
Et le deuxième popmenu me servirait, par exemple, à multiplier une des fonctions (du 1er popmenu) par l'un des coefficients du 2eme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 function tracer_fonction %%%% déclaration des variables globales global a t hpopup hradio axes(a) % le tracé se fait dans l’axe a % récupérer le numéro de l’item sélectionné dans le menu popup num = get(hpopup, 'Value'); % récupérer la valeur du bouton on-off pour le tracé pointillé if get(hradio,'Value')==0 style = '-'; else style = '-'; end % tracé de la fonction num switch num case 1 plot(t, t, style) case 2 plot(t,1./(1+t.^2), style) case 3 plot(t, cos(t), style) case 4 plot(t, sin(t), style) end % fixer les bornes en x nb_pts = length(t); set(a, 'XLim', [t(1) t(nb_pts)]);
Je n'arrive pas à créer ce lien entre les deux popmenu...
En espérant avoir été clair, je vous remercie par avance pour les aides apportées.
Cdt,
Undermorue
Partager