Home > Codi > Menu_Configura_PCA.m

Menu_Configura_PCA

PURPOSE ^

Pantalla pensada exclusivament per permetre configurar els objectes PCA

SYNOPSIS ^

function varargout = Menu_Configura_PCA(varargin)

DESCRIPTION ^

Pantalla pensada exclusivament per permetre configurar els objectes PCA
o visualitzar-ne la configuracio.

Per invocar directament des de consola aquesta pantalla nomes cal
invocar-ne la funcio sense cap parametre extra:
Menu_Configura_PCA();

També es pot invocar fent doble click sobre un objecte PCA del workspace.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function varargout = Menu_Configura_PCA(varargin)
0002 %Pantalla pensada exclusivament per permetre configurar els objectes PCA
0003 %o visualitzar-ne la configuracio.
0004 %
0005 %Per invocar directament des de consola aquesta pantalla nomes cal
0006 %invocar-ne la funcio sense cap parametre extra:
0007 %Menu_Configura_PCA();
0008 %
0009 %També es pot invocar fent doble click sobre un objecte PCA del workspace.
0010 gui_Singleton = 1;
0011 gui_State = struct('gui_Name',       mfilename, ...
0012     'gui_Singleton',  gui_Singleton, ...
0013     'gui_OpeningFcn', @Menu_Configura_PCA_OpeningFcn, ...
0014     'gui_OutputFcn',  @Menu_Configura_PCA_OutputFcn, ...
0015     'gui_LayoutFcn',  [] , ...
0016     'gui_Callback',   []);
0017 if nargin && ischar(varargin{1})
0018     gui_State.gui_Callback = str2func(varargin{1});
0019 end
0020 
0021 if nargout
0022     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
0023 else
0024     gui_mainfcn(gui_State, varargin{:});
0025 end
0026 
0027 function Menu_Configura_PCA_OpeningFcn(hObject, ~, handles, varargin)
0028 %funció que s'invoca en crear la finestra a varargin ens arriven el
0029 %possibles parametres extres d'invocació de Pantalla. No els
0030 %utilitzarem per res. hObject i handles els modificarem.
0031 
0032 handles.output = hObject;
0033 guidata(hObject, handles);
0034 set(handles.popupmenu1,'Enable','off');
0035 set(handles.popupmenu2,'Enable','off');
0036 set(handles.popupmenu3,'Enable','off');
0037 set(handles.popupmenu4,'Enable','off');
0038 set(handles.popupmenu5,'Enable','off');
0039 set(handles.popupmenu7,'Enable','off');
0040 set(handles.Guardar,'Enable','off');
0041 
0042 x=evalin('base','whos();');
0043 list=[];
0044 for i=1:length(x)
0045     if strcmp(x(i).class,'PCA')
0046         list=[list; {x(i).name}];
0047     end
0048 end
0049 if isempty(list)
0050     list={'No hi ha cap objecte PCA'};
0051 end
0052 set(handles.popupmenu6,'String',list);
0053 
0054 if ~isempty(varargin) %si ens passen parametres interpretem que es l'element que volen seleccionar!!
0055     ind =max(strcmp(list,varargin{1})' .* (1:length(list)));
0056     if(ind ~= 0)
0057         set(handles.popupmenu6,'value', ind); %posem l'element que ens passen per parametre com a seleccionat
0058         popupmenu6_Callback(-1,-1,handles);
0059     end
0060 end
0061 
0062 function Guardar_Callback(~, ~, handles)
0063 try
0064     nom=get(handles.popupmenu6,'String');
0065     nom=nom{get(handles.popupmenu6,'Value')};
0066     
0067     
0068     if evalin('base',[nom '.isModel();']) %nomes si es model podem canviar aquests
0069         
0070         %BW o VW
0071         inst=[nom '.setUnfoldingMethod(' num2str(get(handles.popupmenu4,'Value')-1) ');'];
0072         evalin('base',inst);
0073         
0074         %fixem el metode d'estandaritzacio
0075         inst=[nom '.setNormalizationMethod(' num2str(get(handles.popupmenu1,'Value')) ');'];
0076         evalin('base',inst);
0077         
0078         %treure forma mitja
0079         inst=[nom '.setTrajectoryRemoval(' num2str(get(handles.popupmenu3,'Value')-1) ');'];
0080         evalin('base',inst);
0081         
0082         %fixem el metode de seleccio de components principals
0083         inst=[nom '.setPCSelectionMethod(' num2str(get(handles.popupmenu2,'Value')-1) ');'];
0084         evalin('base',inst);
0085         
0086         %calcullimits
0087         inst=[nom '.setLimitMethod(' num2str(get(handles.popupmenu5,'Value')-1) ');'];
0088         evalin('base',inst);
0089         
0090         %calcul contribucions
0091         inst=[nom '.setContributionMethod(' num2str(get(handles.popupmenu7,'Value')-1) ');'];
0092         evalin('base',inst);
0093         
0094     else
0095         errordlg('L''objecte pca que has seleccionat no es un model','Error')
0096         
0097         uiwait(handle(gcf));
0098     end
0099     
0100     close('Menu_Configura_PCA');
0101     Update_Caller();
0102     
0103 catch err
0104     errordlg(err.message,'Error');
0105 end
0106 
0107 function popupmenu6_Callback(~, ~, handles)
0108 nom=get(handles.popupmenu6,'String');
0109 nom=nom{get(handles.popupmenu6,'Value')};
0110 
0111 
0112 %fem que es mostri el que toca segons l'objecte!
0113 set(handles.popupmenu1,'Value',evalin('base',[nom '.getNormalizationMethod();']));
0114 set(handles.popupmenu2,'Value',evalin('base',[nom '.getPCSelectionMethod();'])+1);
0115 set(handles.popupmenu3,'Value',evalin('base',[nom '.getTrajectoryRemoval();'])+1);
0116 set(handles.popupmenu4,'Value',evalin('base',[nom '.getUnfoldingMethod();'])+1);
0117 set(handles.popupmenu5,'Value',evalin('base',[nom '.getLimitMethod();'])+1);
0118 set(handles.popupmenu7,'Value',evalin('base',[nom '.getContMetode();'])+1);
0119 
0120 %activem o no segons toqui!
0121 if evalin('base',[nom '.isModel();'])
0122     set(handles.popupmenu1,'Enable','on');
0123     set(handles.popupmenu2,'Enable','on');
0124     set(handles.popupmenu3,'Enable','on');
0125     set(handles.popupmenu4,'Enable','on');
0126     set(handles.popupmenu5,'Enable','on');
0127     set(handles.popupmenu7,'Enable','on');
0128     set(handles.Guardar,'Enable','on');
0129 else
0130     set(handles.popupmenu1,'Enable','off');
0131     set(handles.popupmenu2,'Enable','off');
0132     set(handles.popupmenu3,'Enable','off');
0133     set(handles.popupmenu4,'Enable','off');
0134     set(handles.popupmenu5,'Enable','off');
0135     set(handles.popupmenu7,'Enable','off');
0136     set(handles.Guardar,'Enable','off');
0137 end
0138 
0139 function Update(hObject, ~, handles)
0140 handles.output = hObject;
0141 
0142 %Tornem a crear la llista d'objectes PCA
0143 x=evalin('base','whos();');
0144 list=[];
0145 for i=1:length(x)
0146     if strcmp(x(i).class,'PCA')
0147         list=[list; {x(i).name}];
0148     end
0149 end
0150 if isempty(list)
0151     list={'No hi ha cap objecte PCA'};
0152 end
0153 
0154 %busquem el valor que te el popupmenu actualment
0155 nom=get(handles.popupmenu6,'String');
0156 nom=nom{get(handles.popupmenu6,'Value')};
0157 
0158 %busquem aquest nom entre la llista actual
0159 
0160 val=find(strcmp(nom,list));
0161 set(handles.popupmenu6,'String',list);
0162 
0163 if isempty(val)
0164     set(handles.popupmenu6,'Value',1);
0165     
0166     %i desactivem els menus!
0167     set(handles.popupmenu1,'Enable','off');
0168     set(handles.popupmenu2,'Enable','off');
0169     set(handles.popupmenu3,'Enable','off');
0170     set(handles.popupmenu4,'Enable','off');
0171     set(handles.popupmenu5,'Enable','off');
0172     set(handles.popupmenu7,'Enable','off');
0173     set(handles.Guardar,'Enable','off');
0174     
0175 else
0176     set(handles.popupmenu6,'Value',val);
0177 end
0178 
0179 guidata(hObject, handles);
0180 
0181 %-----------------------------INUTILS--------------------------------------
0182 function popupmenu1_Callback(~, ~, ~)
0183 function popupmenu1_CreateFcn(hObject, ~, ~)
0184 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0185     set(hObject,'BackgroundColor','white');
0186 end
0187 function popupmenu2_Callback(~, ~, ~)
0188 function popupmenu2_CreateFcn(hObject, ~, ~)
0189 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0190     set(hObject,'BackgroundColor','white');
0191 end
0192 function popupmenu3_Callback(~, ~, ~)
0193 function popupmenu3_CreateFcn(hObject, ~, ~)
0194 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0195     set(hObject,'BackgroundColor','white');
0196 end
0197 function popupmenu4_Callback(~, ~, ~)
0198 function popupmenu4_CreateFcn(hObject, ~, ~)
0199 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0200     set(hObject,'BackgroundColor','white');
0201 end
0202 function popupmenu5_Callback(~, ~, ~)
0203 function popupmenu5_CreateFcn(hObject, ~, ~)
0204 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0205     set(hObject,'BackgroundColor','white');
0206 end
0207 function popupmenu6_CreateFcn(hObject, ~, ~)
0208 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0209     set(hObject,'BackgroundColor','white');
0210 end
0211 function popupmenu7_Callback(~, ~, ~)
0212 function popupmenu7_CreateFcn(hObject, ~, ~)
0213 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0214     set(hObject,'BackgroundColor','white');
0215 end
0216 function varargout = Menu_Configura_PCA_OutputFcn(~, ~, handles) 
0217 varargout{1} = handles.output;

Generated on Wed 12-Sep-2012 13:03:54 by m2html © 2005