Bonjour,
J'utilise un GUI pour faire une analyse discriminante de Fisher sur des données. J'ai un problème dans l'utilisation d'un popupmenu. J'utilise ce bouton pour effectuer la sélection de variables (pour le moment, je ne fais qu'avec 3), et je veux les représenter graphiquement.
Mais seul mon premier graphe :
handles.current_data=A;
plot(handles.current_data);
s'affiche. J'ai beau cliquer sur mon popup menu, rien ne change.

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
 
function fisherdiscriminantanalysis_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to fisherdiscriminantanalysis (see VARARGIN)
 
%%%%%%%%%%%%%%%%%%%%%%% DATA initial plot / Create the data to plot
A=[
   JTLdata1(:,1),JTLdata1(:,2),JTLdata1(:,15),JTLdata1(:,16),JTLdata1(:,23),JTLdata1(:,24),JTLdata1(:,31),JTLdata1(:,32),JTLdata1(:,35),JTLdata1(:,36),JTLdata1(:,37),JTLdata1(:,38),JTLdata1(:,43),JTLdata1(:,44) ;
   JTLdata2(:,1),JTLdata2(:,2),JTLdata2(:,15),JTLdata2(:,16),JTLdata2(:,23),JTLdata2(:,24),JTLdata2(:,31),JTLdata2(:,32),JTLdata2(:,35),JTLdata2(:,36),JTLdata2(:,37),JTLdata2(:,38),JTLdata2(:,43),JTLdata2(:,44) ;
   JTLdata3(:,1),JTLdata3(:,2),JTLdata3(:,15),JTLdata3(:,16),JTLdata3(:,23),JTLdata3(:,24),JTLdata3(:,31),JTLdata3(:,32),JTLdata3(:,35),JTLdata3(:,36),JTLdata3(:,37),JTLdata3(:,38),JTLdata3(:,43),JTLdata3(:,44) ;
   JTLdata4(:,1),JTLdata4(:,2),JTLdata4(:,15),JTLdata4(:,16),JTLdata4(:,23),JTLdata4(:,24),JTLdata4(:,31),JTLdata4(:,32),JTLdata4(:,35),JTLdata4(:,36),JTLdata4(:,37),JTLdata4(:,38),JTLdata4(:,43),JTLdata4(:,44) ;
   JTLdata5(:,1),JTLdata5(:,2),JTLdata5(:,15),JTLdata5(:,16),JTLdata5(:,23),JTLdata5(:,24),JTLdata5(:,31),JTLdata5(:,32),JTLdata5(:,35),JTLdata5(:,36),JTLdata5(:,37),JTLdata5(:,38),JTLdata5(:,43),JTLdata5(:,44) ]   
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%DATA
 
handles.var1=[JTLdata1(:,1);JTLdata2(:,1)];
handles.var2=JTLdata1(:,2);
handles.var3=[JTLdata1(:,3);JTLdata2(:,3)];
 
handles.current_data=A;
plot(handles.current_data);
 
% Choose default command line output for fisherdiscriminantanalysis
handles.output = hObject;
 
% Update handles structure
guidata(hObject, handles);
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
 
function varpopupmenu1_Callback(hObject, eventdata, handles)
% hObject    handle to varpopupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Hints: contents = get(hObject,'String') returns varpopupmenu1 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from varpopupmenu1
 
val=get(hObject,'Value');
str=get(hObject,'String');
switch str{val}
    case 'var 1' %user selects variables
        handles.current_data=handles.var1;
    case 'var 2'
        handles.current_data=handles.var2;
    case 'var 3'
        handles.current_data=handles.var3;
end
 
guidata(hObject,handles);
Quelqu'un voit-il pourquoi?
Dois-je fournir plus de renseignements?