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:

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');  
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
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)]); 
Et le deuxième popmenu me servirait, par exemple, à multiplier une des fonctions (du 1er popmenu) par l'un des coefficients du 2eme.

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