Home > Codi > Menu_CBR.m

Menu_CBR

PURPOSE ^

Pantalla pensada per configurar, visualitzar i trevallar amb els objectes

SYNOPSIS ^

function varargout = Menu_CBR(varargin)

DESCRIPTION ^

Pantalla pensada per configurar, visualitzar i trevallar amb els objectes
de classe CBR.

Per invocar directament des de consola aquesta pantalla nomes cal
invocar-ne la funcio sense cap parametre extra (sempre que hi hagi
objectes CBR al workspace):
Menu_CBR();

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function varargout = Menu_CBR(varargin)
0002 %Pantalla pensada per configurar, visualitzar i trevallar amb els objectes
0003 %de classe CBR.
0004 %
0005 %Per invocar directament des de consola aquesta pantalla nomes cal
0006 %invocar-ne la funcio sense cap parametre extra (sempre que hi hagi
0007 %objectes CBR al workspace):
0008 %Menu_CBR();
0009 %
0010 %També es pot invocar fent doble click sobre un objecte CBR del workspace.
0011 
0012 gui_Singleton = 1;
0013 gui_State = struct('gui_Name',       mfilename, ...
0014     'gui_Singleton',  gui_Singleton, ...
0015     'gui_OpeningFcn', @Menu_CBR_OpeningFcn, ...
0016     'gui_OutputFcn',  @Menu_CBR_OutputFcn, ...
0017     'gui_LayoutFcn',  [] , ...
0018     'gui_Callback',   []);
0019 if nargin && ischar(varargin{1})
0020     gui_State.gui_Callback = str2func(varargin{1});
0021 end
0022 
0023 if nargout
0024     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
0025 else
0026     gui_mainfcn(gui_State, varargin{:});
0027 end
0028 
0029 function Menu_CBR_OpeningFcn(hObject, ~, handles, varargin)
0030 %funció que s'invoca en crear la finestra a varargin ens arriven el
0031 %possibles parametres extres d'invocació de Pantalla. No els
0032 %utilitzarem per res. hObject i handles els modificarem.
0033 
0034 handles.output = hObject;
0035 handles=menu(handles);
0036 guidata(hObject, handles); %guardem els canvis
0037 
0038 %busquem objectes dades
0039 x=evalin('base','whos();');
0040 list=[];
0041 list2=[];
0042 for i=1:length(x)
0043     if strcmp(x(i).class,'DATA') ~=0
0044         list=[list; {x(i).name}];
0045     end
0046     
0047     if strcmp(x(i).class,'CBR') ~=0
0048         list2=[list2; {x(i).name}];
0049     end
0050 end
0051 if isempty(list)
0052     list={'No DATA object in workspace'};
0053 end
0054 set(handles.popupmenu10,'String',list);
0055 
0056 %busquem objectes CBR
0057 %ja els tenim a list2!
0058 if isempty(list2)
0059     list2={'No DATA object in workspace'};
0060 end
0061 set(handles.popupmenu1,'String',list2);
0062 
0063 set(handles.edit5,'Visible','off');
0064 set(handles.edit6,'Visible','off');
0065 set(handles.text15,'Visible','off');
0066 set(handles.text16,'Visible','off');
0067 
0068 %deshabilitem el que no es pot tocar fins a selecionar el CBR
0069 set(handles.pushbutton7,'enable','off');
0070 set(handles.pushbutton6,'enable','off');
0071 set(handles.pushbutton5,'enable','off');
0072 set(handles.pushbutton4,'enable','off');
0073 set(handles.pushbutton3,'enable','off');
0074 set(handles.pushbutton2,'enable','off');
0075 set(handles.pushbutton10,'enable','off');
0076 set(handles.pushbutton11,'enable','off');
0077 
0078 set(handles.popupmenu10,'enable','off');
0079 set(handles.popupmenu4,'enable','off');
0080 set(handles.popupmenu3,'enable','off');
0081 set(handles.popupmenu2,'enable','off');
0082 
0083 set(handles.edit8,'enable','off');
0084 set(handles.edit2,'enable','off');
0085 axes(handles.axes1);
0086 cla(gcf);
0087 set(handles.axes1,'Visible','off');
0088 datacursormode off
0089 
0090 if ~isempty(varargin) %si ens passen parametres interpretem que es l'element que volen seleccionar!!
0091     ind =max(strcmp(list2,varargin{1})' .* (1:length(list2)));
0092     if(ind ~= 0)
0093         set(handles.popupmenu1,'value', ind); %posem l'element que ens passen per parametre com a seleccionat
0094         popupmenu1_Callback(-1,-1,handles);
0095     end
0096 else
0097     %si no nomes mostrem els parametres de l'actual
0098     popupmenu1_Callback(hObject,-1,handles);
0099     
0100 end
0101 %Posem be els textos de veins
0102 popupmenu4_Callback(-1, -1, handles)
0103 
0104 function varargout = Menu_CBR_OutputFcn(~, ~, handles)
0105 varargout{1} = handles.output;
0106 
0107 function pushbutton2_Callback(~, ~, handles)
0108 % Retrieve
0109 try
0110     %recuperem les dades
0111     variable=get(handles.popupmenu1,'String');
0112     mcbr=variable{get(handles.popupmenu1,'Value')};
0113 
0114     
0115     variable=get(handles.popupmenu10,'String');
0116     dade=variable{get(handles.popupmenu10,'Value')};
0117 
0118     
0119     if evalin('base',[mcbr '.isOptimized();']) == 0
0120         dc=get(handles.popupmenu4,'Value');
0121         
0122         extra='';
0123         switch dc
0124             case 4
0125                 %distancies dobles
0126                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit8,'String')  ']' ];
0127             case 5
0128                 %distancies dobles
0129                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit8,'String')  ']' ];
0130             case 6
0131                 %distancies dobles
0132                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit8,'String')  ']' ];
0133                 
0134             case 17
0135                 %distancia simple mes parametre extra
0136                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit2,'String')  ']' ];
0137                 extra =[', ' get(handles.edit8,'String') ];
0138                 
0139             case 18
0140                 %distancia simple mes parametre extra
0141                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit2,'String')  ']' ];
0142                 extra =[', ' get(handles.edit8,'String') ];
0143                 
0144             otherwise
0145                 %distancies simples nomes necesitem un numero
0146                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit2,'String')  ']' ];
0147         end
0148         
0149         inst=[mcbr '.retrieve(' dade ',' vk ',' num2str(dc) extra ');'];
0150         [index ~]=evalin('base',inst);
0151         
0152         
0153         %si no te noms de lot els generem asignant-hi la posicio actual del
0154         %lot!!
0155         
0156         %noms al test
0157         noms=evalin('base',[dade '.getBatchLabel()']);
0158         if(isempty(noms) && (evalin('base',[dade '.getBatchCount()']) > 0))
0159             evalin('base',[dade '.setBatchLabel(num2cell(1:' dade '.getBatchCount))']);
0160             warndlg('Selected object had no batch names. Automatic ones ware assigned.','Attention!')
0161         end
0162         
0163         %noms a la C_B
0164         noms=evalin('base',[mcbr '.getCaseBase.getBatchLabel()']);
0165         if(isempty(noms) && (evalin('base',[mcbr '.getCaseBase.getBatchCount()']) > 0))
0166             evalin('base',[mcbr '.getCaseBase.setBatchLabel(num2cell(1:' mcbr '.getCaseBase.getBatchCount));']);
0167             warndlg('Selected object had no batch names. Automatic ones ware assigned.','Attention!')
0168         end
0169         
0170         
0171         [~, class noms] = evalin('base',[mcbr '.getCase([' num2str(index(:)') '])']);
0172         
0173         class=reshape(class,size(index,1),size(index,2));
0174         noms=reshape(noms,size(index,1),size(index,2));
0175         
0176     else
0177         inst=[mcbr '.retrieve(' dade ');'];
0178         [index ~]=evalin('base',inst);
0179         [~, class noms] = evalin('base',[mcbr '.getCase([' num2str(index(:)') '])']);
0180         class=reshape(class,size(index,1),size(index,2));
0181         noms=reshape(noms,size(index,1),size(index,2));
0182         
0183         %ya no es poden modificar més!!
0184         set(handles.edit8,'enable','off');
0185         set(handles.edit2,'enable','off');
0186         set(handles.popupmenu3,'enable','off');
0187         set(handles.popupmenu4,'enable','off');
0188     end
0189     
0190     auxi=[];
0191     for i=1:size(noms,2)
0192         auxi=[auxi noms{i} '  '];
0193     end
0194     set(handles.listbox1,'String',{'Class:'   num2str(class) 'Name:' auxi})
0195     set(handles.listbox1,'value',length(get(handles.listbox1,'String')));
0196     
0197     set(handles.listbox1,'Visible','on');
0198     axes(handles.axes1);
0199     cla(gcf);
0200     set(handles.axes1,'Visible','off');
0201     datacursormode off
0202     
0203 catch err
0204     errordlg(err.message,'Error');
0205 end
0206 
0207 function pushbutton3_Callback(~, ~, handles)
0208 % Reuse
0209 try
0210     %recuperem les dades
0211     variable=get(handles.popupmenu1,'String');
0212     mcbr=variable{get(handles.popupmenu1,'Value')};
0213 
0214     
0215     metode=num2str(get(handles.popupmenu3,'Value'));
0216     
0217     if evalin('base',[mcbr '.isOptimized();']) == 0
0218         inst=[mcbr '.reuse(' metode ');'];
0219         clase=evalin('base',inst);
0220     else
0221         inst=[mcbr '.reuse();'];
0222         clase=evalin('base',inst);
0223         
0224         %ya no es poden modificar més!!
0225         set(handles.edit8,'enable','off');
0226         set(handles.edit2,'enable','off');
0227         set(handles.popupmenu3,'enable','off');
0228         set(handles.popupmenu4,'enable','off');
0229     end
0230     
0231     set(handles.listbox1,'String',{'Class:'   num2str(clase) })
0232     set(handles.listbox1,'value',length(get(handles.listbox1,'String')));
0233     
0234     set(handles.listbox1,'Visible','on');
0235     axes(handles.axes1);
0236     cla(gcf);
0237     set(handles.axes1,'Visible','off');
0238     datacursormode off
0239 catch err
0240     errordlg(err.message,'Error');
0241 end
0242 
0243 function pushbutton4_Callback(~, ~, handles)
0244 % Revise
0245 try
0246     %recuperem les dades
0247     variable=get(handles.popupmenu1,'String');
0248     mcbr=variable{get(handles.popupmenu1,'Value')};
0249 
0250     
0251     variable=get(handles.popupmenu10,'String');
0252     dades=variable{get(handles.popupmenu10,'Value')};
0253 
0254     
0255     %hem de fer un reuse per poder saver quina classe li assignava i poder
0256     %fer el Plot_Confusion_Matrix! si no no caldria
0257     inst=[mcbr '.reuse();'];
0258     classp=evalin('base',inst);
0259 
0260     %el revise
0261     inst=[mcbr '.revise();'];
0262     [matri ~]=evalin('base',inst);
0263       
0264     
0265     %necesitem la classe real per fer el Plot_Confusion_Matrix
0266     classreal = evalin('base',[dades '.getClass();']);
0267     
0268     %posem el axes a visible i el listbox a invisible
0269     set(handles.axes1,'Visible','on');
0270     set(handles.listbox1,'Visible','off');
0271     
0272     axes(handles.axes1);
0273     %netejo l'axes per evitar solapaments i coses rares
0274     cla(gcf);
0275     
0276     %fem el plot, en detectar que nomes hi ha una partició fara servir el
0277     %current axes
0278     Plot_Confusion_Matrix({classp},{classreal},max(unique(classreal,classp)),evalin('base',[dades '.copy();']),{matri});
0279     
0280     %abilitem el datatip perque l'usuari no ho pot fer des de la UI
0281     datacursormode on
0282     
0283 catch err
0284     errordlg(err.message,'Error');
0285 end
0286 
0287 function pushbutton5_Callback(~, ~, handles)
0288 % Retain
0289 try
0290     %recuperem les dades
0291     variable=get(handles.popupmenu1,'String');
0292     mcbr=variable{get(handles.popupmenu1,'Value')};
0293 
0294     
0295     %ens cal fer un revise per saver quins fallen!
0296     inst=[ mcbr '.revise();'];
0297     [~, fallen] = evalin('base',inst);
0298     
0299     %invoquem el retain
0300     inst=[mcbr '.retain([' num2str(fallen) '] == 1);'];
0301     evalin('base',inst);
0302     
0303     
0304 
0305     %pie per la C_B
0306     model=evalin('base',[mcbr '.getCaseBase();']);
0307     uni =  max(unique(model.getClass));
0308         uni = 1:uni;
0309     for i = uni
0310         su(i) = sum(model.getClass == i);
0311     end
0312     ind = (su ~=0);
0313     pie(handles.axes3,su(ind) ,uni(ind));
0314     legend(handles.axes3,char2cell(num2str(uni(ind))),'Location','BestOutside')
0315         
0316    
0317     set(handles.text43,'String',model.getBatchCount());
0318     set(handles.listbox3,'String',model.getBatchLabel());
0319     
0320 catch err
0321     errordlg(err.message,'Error');
0322 end
0323 
0324 function pushbutton6_Callback(~, ~, handles)
0325 %optimitza
0326 
0327 %fem un retrieve per evitar problemes!
0328 pushbutton2_Callback(-1, -1, handles);
0329 
0330 try
0331     %recuperem les dades
0332     variable=get(handles.popupmenu1,'String');
0333     mcbr=variable{get(handles.popupmenu1,'Value')};
0334 
0335     
0336     net=get(handles.popupmenu2,'string');
0337     net=net{get(handles.popupmenu2,'Value')};
0338     
0339     if evalin('base',[mcbr '.isOptimized();']) == 0
0340         dc=get(handles.popupmenu4,'Value');
0341         metode=num2str(get(handles.popupmenu3,'Value'));
0342         
0343         switch dc
0344             case 4
0345                 %distancies dobles
0346                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit8,'String')  ']' ];
0347             case 5
0348                 %distancies dobles
0349                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit8,'String')  ']' ];
0350             case 6
0351                 %distancies dobles
0352                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit8,'String')  ']' ];
0353                 
0354             case 17
0355                 %distancia simple mes parametre extra
0356                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit2,'String')  ']' ];
0357                 metode = [metode ', ' get(handles.edit8,'String') ];
0358                 
0359             case 18
0360                 %distancia simple mes parametre extra
0361                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit2,'String')  ']' ];
0362                 metode = [metode ', ' get(handles.edit8,'String') ];
0363             otherwise
0364                 %distancies simples nomes necesitem un numero
0365                 vk=[ '[' get(handles.edit2,'String') ' ' get(handles.edit2,'String')  ']' ];
0366         end
0367         
0368         if get(handles.popupmenu2,'Value') < 4
0369             inst=[mcbr '.' net '(' vk ',' num2str(dc) ',' metode ');'];
0370             evalin('base',inst);
0371         elseif get(handles.popupmenu2,'Value')==4
0372             inst=[mcbr '.' net '(' get(handles.edit5,'String') ',' get(handles.edit6,'String') ',' vk ',' num2str(dc) ','  metode ');'];
0373             evalin('base',inst);
0374         end
0375     else
0376         if get(handles.popupmenu2,'Value') < 4
0377             inst=[mcbr '.' net '();'];
0378             evalin('base',inst);
0379         elseif get(handles.popupmenu2,'Value')==4
0380             inst=[mcbr '.' net '(' get(handles.edit5,'String') ',' get(handles.edit6,'String') ');'];
0381             evalin('base',inst);
0382         end
0383         
0384     end
0385     
0386     
0387     %ya no es poden modificar més!!
0388     set(handles.edit2,'enable','off');
0389     set(handles.edit8,'enable','off');
0390     set(handles.popupmenu3,'enable','off');
0391     set(handles.popupmenu4,'enable','off');
0392        
0393     %lo mateix per la C_B
0394     model=evalin('base',[mcbr '.getCaseBase();']);
0395     uni =  max(unique(model.getClass));
0396         uni = 1:uni;
0397     for i = uni
0398         su(i) = sum(model.getClass == i);
0399     end
0400     ind = (su ~=0);
0401     pie(handles.axes3,su(ind) ,uni(ind));
0402     legend(handles.axes3,char2cell(num2str(uni(ind))),'Location','BestOutside')
0403         
0404 
0405     set(handles.text43,'String',model.getBatchCount());
0406     set(handles.listbox3,'String',model.getBatchLabel());
0407     
0408 catch err
0409     errordlg(err.message,'Error');
0410 end
0411 
0412 function popupmenu10_Callback(~, ~, handles)
0413 %han escollit unes dades
0414 set(handles.pushbutton2,'Enable','on');
0415 
0416 function pushbutton7_Callback(~, ~, ~)
0417 %bolen entrar mes dades
0418 uiwait(Menu_Load_Dades());
0419 
0420 function popupmenu2_Callback(~, ~, handles)
0421 
0422 if get(handles.popupmenu2,'Value') == 4 %IBUdG
0423     set(handles.edit5,'Visible','on');
0424     set(handles.edit6,'Visible','on');
0425     set(handles.text15,'Visible','on');
0426     set(handles.text16,'Visible','on');
0427 else
0428     set(handles.edit5,'Visible','off');
0429     set(handles.edit6,'Visible','off');
0430     set(handles.text15,'Visible','off');
0431     set(handles.text16,'Visible','off');
0432 end
0433 
0434 function popupmenu4_Callback(~, ~, handles)
0435 %selector de distancies callback
0436 
0437 %segons la distancia escollida canviem la aparença de la ui
0438 switch get(handles.popupmenu4,'value')
0439     case 4
0440         set(handles.text5,'string','Number of cases to retreave (Q)')
0441         set(handles.text28,'string','Number of cases to retreave (T^2)')
0442         set(handles.text28,'visible','on');
0443         set(handles.edit8,'visible','on');
0444         
0445     case 5
0446         set(handles.text5,'string','Number of cases to retreave (Q)')
0447         set(handles.text28,'string','Number of cases to retreave (PC)')
0448         set(handles.text28,'visible','on');
0449         set(handles.edit8,'visible','on');
0450         
0451     case 6
0452         set(handles.text5,'string','Number of cases to retreave (T^2)')
0453         set(handles.text28,'string','Number of cases to retreave (PC)')
0454         set(handles.text28,'visible','on');
0455         set(handles.edit8,'visible','on');
0456         
0457     case 17
0458         set(handles.text5,'string','Number of cases to retreave')
0459         set(handles.text28,'string','distance parameter')
0460         set(handles.text28,'visible','on');
0461         set(handles.edit8,'visible','on');
0462         
0463     case 18
0464         set(handles.text5,'string','Number of cases to retreave')
0465         set(handles.text28,'string','distance parameter')
0466         set(handles.text28,'visible','on');
0467         set(handles.edit8,'visible','on');
0468         
0469     otherwise
0470         %distancies d'1 nivell i sense parametres extres
0471         set(handles.text5,'string','Number of cases to retreave')
0472         set(handles.text28,'visible','off');
0473         set(handles.edit8,'visible','off');
0474         
0475 end
0476 
0477 function popupmenu1_Callback(~, ~, handles)
0478 %recuperem les dades
0479 variable=get(handles.popupmenu1,'String');
0480 mcbr=variable{get(handles.popupmenu1,'Value')};
0481 
0482 
0483 %posem la UI com toca despres de seleccionar un objecte
0484 set(handles.pushbutton7,'enable','on');
0485 set(handles.pushbutton6,'enable','on');
0486 set(handles.pushbutton5,'enable','on');
0487 set(handles.pushbutton4,'enable','on');
0488 set(handles.pushbutton3,'enable','on');
0489 set(handles.pushbutton2,'enable','on');
0490 set(handles.pushbutton10,'enable','on');
0491 set(handles.pushbutton11,'enable','on');
0492 
0493 set(handles.popupmenu10,'enable','on');
0494 set(handles.popupmenu4,'enable','on');
0495 set(handles.popupmenu3,'enable','on');
0496 set(handles.popupmenu2,'enable','on');
0497 
0498 set(handles.popupmenu10,'value',1);
0499 set(handles.popupmenu4,'value',1);
0500 set(handles.popupmenu3,'value',1);
0501 set(handles.popupmenu2,'value',1);
0502 
0503 set(handles.edit8,'enable','on');
0504 set(handles.edit2,'enable','on');
0505 
0506 
0507 if evalin('base',[mcbr '.isOptimized();']) == 0
0508     % Es poden modificar VK,DC i metode seleccio veins
0509     set(handles.edit2,'enable','on');
0510     set(handles.edit8,'enable','on');
0511     set(handles.popupmenu3,'enable','on');
0512     set(handles.popupmenu4,'enable','on');
0513 else
0514     %No es poden modificar VK,DC i metode seleccio veins
0515     set(handles.edit2,'enable','off');
0516     set(handles.edit8,'enable','off');
0517     set(handles.popupmenu3,'enable','off');
0518     set(handles.popupmenu4,'enable','off');
0519     
0520 end
0521 
0522 %Si VK,DC i metode seleccio veins els hem fet servir algun cop els
0523 %posem directament per estalviar feina a l'usuari
0524 aux1 = evalin('base',[mcbr '.getMethod();']);
0525 if~isempty(aux1)
0526     set(handles.popupmenu3,'Value',aux1);
0527 end
0528 
0529 aux1 = evalin('base',[mcbr '.getDC();']);
0530 if~isempty(aux1)
0531     set(handles.popupmenu4,'Value',aux1);
0532 end
0533 
0534 aux = evalin('base',[mcbr '.getVK();']);
0535 if~isempty(aux)
0536     set(handles.edit2,'String', num2str(aux(1)));
0537     set(handles.edit8,'String',num2str(aux(2)));
0538     if aux1 ==17 || aux1 ==18
0539         set(handles.edit8,'String',evalin('base',[mcbr '.getParam();']));
0540     end
0541 end
0542 
0543 
0544 model=evalin('base',[mcbr '.getModel();']);
0545 val={
0546     'Auto Scaling'
0547     'Group Scaling'
0548     'Continous Scaling'
0549     'Block Scaling'};
0550 set(handles.text17,'String',val{model.getNormalizationMethod()+1});
0551 
0552 val={
0553     'Manual'
0554 'Kaiser'
0555 'Manual - Scree Plot'
0556 'Automatic  - Scree Plot'
0557 '% variance explained'
0558 'VRE'};
0559 set(handles.text18,'String',val{model.getPCSelectionMethod()+1});
0560 
0561 val={
0562     'No'
0563     'Yes'};
0564 set(handles.text19,'String',val{model.getTrajectoryRemoval()+1});
0565 
0566 val={
0567     'Batch Wise'
0568     'Variable Wise'};
0569 set(handles.text20,'String',val{model.getUnfoldingMethod()+1});
0570 
0571 val={
0572     ' 3 sigma'
0573     'Analiticaly'};
0574 set(handles.text21,'String',val{model.getLimitMethod()+1});
0575 
0576 val={
0577     'Only positive'
0578 'Positive and negative'};
0579 set(handles.text26,'String',val{model.getContMetode()+1});
0580 
0581     set(handles.text35,'String',model.getSampleCount());
0582     set(handles.text36,'String',model.getVariableCount());
0583     set(handles.text37,'String',model.getBatchCount());
0584     set(handles.text38,'String',model.getNum());
0585     set(handles.text39,'String',model.getT2Limit());
0586     set(handles.text40,'String',model.getQLimit());
0587     
0588     %piechart de les classes Model
0589     uni =  max(unique(model.getClass));
0590      uni = 1:uni;
0591     for i = uni
0592         su(i) = sum(model.getClass == i);
0593     end
0594     ind = (su ~=0);
0595     
0596     pie(handles.axes2,su(ind) ,uni(ind));
0597     legend(handles.axes2,char2cell(num2str(uni(ind))),'Location','SouthEastOutside')
0598 
0599     
0600     %lo mateix per la C_B
0601     model=evalin('base',[mcbr '.getCaseBase();']);
0602     uni =  max(unique(model.getClass));
0603         uni = 1:uni;
0604     for i = uni
0605         su(i) = sum(model.getClass == i);
0606     end
0607     ind = (su ~=0);
0608     pie(handles.axes3,su(ind) ,uni(ind));
0609     legend(handles.axes3,char2cell(num2str(uni(ind))),'Location','BestOutside')
0610         
0611     %i la info
0612     set(handles.text43,'String',model.getBatchCount());
0613     set(handles.listbox3,'String',model.getBatchLabel());
0614 
0615 %Posem be els textos de veins
0616 popupmenu4_Callback(-1, -1, handles)
0617 popupmenu2_Callback(-1, -1, handles)
0618 
0619 function pushbutton1_Callback(~, ~, ~)
0620 uiwait(Menu_Crea_CBR());
0621 
0622 function Update(hObject, ~, handles)
0623 handles.output = hObject;
0624 handles=menu(handles);
0625 %Tornem a crear la llista d'objectes PCA
0626 x=evalin('base','whos();');
0627 list=[];
0628 list2=[];
0629 for i=1:length(x)
0630     if strcmp(x(i).class,'CBR') ~=0 
0631         list=[list; {x(i).name}];
0632     end
0633     
0634     if strcmp(x(i).class,'DATA') ~=0
0635         list2=[list2; {x(i).name}];
0636     end
0637 end
0638 if isempty(list)
0639     list={'No CBR objects in workspace'};
0640 end
0641 
0642 %busquem el valor que te el popupmenu actualment
0643 nom=get(handles.popupmenu1,'String');
0644 nom=nom{get(handles.popupmenu1,'Value')};
0645 
0646 %busquem aquest nom entre la llista actual
0647 
0648 val=find(strcmp(nom,list));
0649 set(handles.popupmenu1,'String',list);
0650 
0651 if isempty(val)
0652     set(handles.popupmenu1,'Value',1);
0653     
0654     %i desactivem els menus!
0655     set(handles.edit5,'Visible','off');
0656     set(handles.edit6,'Visible','off');
0657     set(handles.text15,'Visible','off');
0658     set(handles.text16,'Visible','off');
0659     
0660     %deshabilitem el que no es pot tocar fins a selecionar el CBR
0661     set(handles.pushbutton7,'enable','off');
0662     set(handles.pushbutton6,'enable','off');
0663     set(handles.pushbutton5,'enable','off');
0664     set(handles.pushbutton4,'enable','off');
0665     set(handles.pushbutton3,'enable','off');
0666     set(handles.pushbutton2,'enable','off');
0667     set(handles.pushbutton10,'enable','off');
0668     set(handles.pushbutton11,'enable','off');
0669     
0670     set(handles.popupmenu10,'enable','off');
0671     set(handles.popupmenu4,'enable','off');
0672     set(handles.popupmenu3,'enable','off');
0673     set(handles.popupmenu2,'enable','off');
0674     
0675     set(handles.edit8,'enable','off');
0676     set(handles.edit2,'enable','off');
0677     
0678 else
0679     set(handles.popupmenu1,'Value',val);
0680 end
0681 
0682 %la llista de dades nomes cal actualitzar-la res mes
0683 
0684 if isempty(list2)
0685     list2={'No DATA Objects in workspace'};
0686 end
0687 set(handles.popupmenu10,'String',list2);
0688 set(handles.popupmenu10,'Value',1);
0689 guidata(hObject, handles);
0690 
0691 function pushbutton10_Callback(hObject, eventdata, handles)
0692 %recuperem el nom del CBR
0693 nom=get(handles.popupmenu1,'String');
0694 nom=nom{get(handles.popupmenu1,'Value')};
0695 
0696 
0697 %recuperem el nom del test
0698 nom2=get(handles.popupmenu10,'String');
0699 nom2=nom2{get(handles.popupmenu10,'Value')};
0700 
0701 
0702 %fem un retrieve i un reuse si fa falta!
0703 if isempty(evalin('base',[nom '.getVK()']))
0704     pushbutton2_Callback(hObject, eventdata, handles)
0705     pushbutton3_Callback(hObject, eventdata, handles)
0706 end
0707 
0708 Menu_Veure_Veins_2({evalin('base',[nom '.copy();'])},[evalin('base',[nom2 '.copy();'])],nom);
0709 
0710 function pushbutton11_Callback(hObject, eventdata, handles)
0711 %boto all 4 simplement invoquem els 4 calbacks!
0712 pushbutton2_Callback(hObject, eventdata, handles)
0713 pushbutton3_Callback(hObject, eventdata, handles)
0714 pushbutton4_Callback(hObject, eventdata, handles)
0715 pushbutton5_Callback(hObject, eventdata, handles)
0716 
0717 %-------------------------------INUTILS------------------------------------
0718 function edit8_Callback(~, ~, ~)
0719 function edit8_CreateFcn(hObject, ~, ~)
0720 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0721     set(hObject,'BackgroundColor','white');
0722 end
0723 function popupmenu4_CreateFcn(hObject, ~, ~)
0724 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0725     set(hObject,'BackgroundColor','white');
0726 end
0727 function edit2_Callback(~, ~, ~)
0728 function edit2_CreateFcn(hObject, ~, ~)
0729 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0730     set(hObject,'BackgroundColor','white');
0731 end
0732 function listbox1_Callback(~, ~, ~)
0733 function listbox1_CreateFcn(hObject, ~, ~)
0734 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0735     set(hObject,'BackgroundColor','white');
0736 end
0737 function edit5_Callback(~, ~, ~)
0738 function edit5_CreateFcn(hObject, ~, ~)
0739 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0740     set(hObject,'BackgroundColor','white');
0741 end
0742 function edit6_Callback(~, ~, ~)
0743 function edit6_CreateFcn(hObject, ~, ~)
0744 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0745     set(hObject,'BackgroundColor','white');
0746 end
0747 function popupmenu10_CreateFcn(hObject, ~, ~)
0748 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0749     set(hObject,'BackgroundColor','white');
0750 end
0751 function popupmenu2_CreateFcn(hObject, ~, ~)
0752 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0753     set(hObject,'BackgroundColor','white');
0754 end
0755 function popupmenu3_Callback(~, ~, ~)
0756 function popupmenu3_CreateFcn(hObject, ~, ~)
0757 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0758     set(hObject,'BackgroundColor','white');
0759 end
0760 function popupmenu1_CreateFcn(hObject, ~, ~)
0761 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0762     set(hObject,'BackgroundColor','white');
0763 end
0764 
0765 
0766 % --- Executes on selection change in listbox3.
0767 function listbox3_Callback(hObject, eventdata, handles)
0768 % hObject    handle to listbox3 (see GCBO)
0769 % eventdata  reserved - to be defined in a future version of MATLAB
0770 % handles    structure with handles and user data (see GUIDATA)
0771 
0772 % Hints: contents = cellstr(get(hObject,'String')) returns listbox3 contents as cell array
0773 %        contents{get(hObject,'Value')} returns selected item from listbox3
0774 
0775 
0776 % --- Executes during object creation, after setting all properties.
0777 function listbox3_CreateFcn(hObject, eventdata, handles)
0778 % hObject    handle to listbox3 (see GCBO)
0779 % eventdata  reserved - to be defined in a future version of MATLAB
0780 % handles    empty - handles not created until after all CreateFcns called
0781 
0782 % Hint: listbox controls usually have a white background on Windows.
0783 %       See ISPC and COMPUTER.
0784 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
0785     set(hObject,'BackgroundColor','white');
0786 end

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