⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classifier_commands.m

📁 最新的模式识别分类工具箱,希望对朋友们有用!
💻 M
字号:
% This is the "core" of the %%function classifier_commands(command)persistent Preprocessing_methods;persistent Algorithms;persistent Frameworks;if (isempty(Preprocessing_methods) | isempty(Algorithms) | isempty(Frameworks))   Algorithms = read_algorithms('Algorithms.txt');   Preprocessing_methods = read_algorithms('Preprocessing.txt');   load FrameworkNames;end%This function processes most events from the main GUI screenswitch(command)    case 'Init'    %Init of the classifier GUI    h				= findobj('Tag', 'Preprocessing');    set(h,'String',strvcat(Preprocessing_methods(:).Name));    chosen = strmatch('None',char(Preprocessing_methods(:).Name));    set(h,'Value',chosen);        h				= findobj('Tag', 'Algorithm');    set(h,'String',strvcat(Algorithms(:).Name));    chosen = strmatch('LS',char(Algorithms(:).Name));    set(h,'Value',chosen);    h				= findobj('Tag', 'frameworkToBeUsed');    set(h,'String',strvcat(Frameworks(:)));    chosen = strmatch('Framework_for_Class',char(Frameworks(:)));    set(h,'Value',chosen);    case 'Changed Preprocessing'  fprintf('Changed Preprocessing\n');   h				= findobj(gcbf, 'Tag', 'Preprocessing');   chosen       	= get(h, 'Value');      hLabel	  		= findobj(gcbf, 'Tag', 'lblPreprocessingParameters');   hBox		  		= findobj(gcbf, 'Tag', 'txtPreprocessingParameters');   set(hBox,'Visible','on');        if ~isempty(chosen),       set(hLabel,'String',Preprocessing_methods(chosen).Caption);       set(hBox,'String',Preprocessing_methods(chosen).Default);       if strcmp(char(Preprocessing_methods(chosen).Field),'N')          set(hLabel,'String','');          set(hBox,'Visible','off');          end   else      set(hLabel,'String','');      set(hBox,'Visible','off');       end   % ================================case 'Changed Algorithm'  fprintf('Changed Algorithm\n');   h			= findobj(gcbf, 'Tag', 'Algorithm');   chosen             	= get(h, 'Value');      hLabel	  	= findobj(gcbf, 'Tag', 'lblAlgorithmParameters');   hBox	 		= findobj(gcbf, 'Tag', 'txtAlgorithmParameters');   hLongBox		= findobj(gcbf, 'Tag', 'txtAlgorithmParametersLong');   set(hBox,'Visible','on');   if ~isempty(chosen),       set(hLabel,'String',Algorithms(chosen).Caption);       % Special Cases, where there is a difference between       % the original framework and the        %       disp(Algorithms(chosen))       if (strcmp(Algorithms(chosen).Name,'SVM'))	 Algorithms(chosen) = DifferentSetup(Algorithms(chosen));       end       switch Algorithms(chosen).Field       case 'S'           set(hBox,'String',Algorithms(chosen).Default);           set(hBox,'Visible','on');           set(hLongBox,'Visible','off');       case 'L'           set(hLongBox,'String',Algorithms(chosen).Default);           set(hBox,'Visible','off');           set(hLongBox,'Visible','on');       case 'N'          set(hLabel,'String','');          set(hBox,'Visible','off');              set(hLongBox,'Visible','off');       end   else      set(hLabel,'String','');      set(hBox,'Visible','off');          set(hLongBox,'Visible','off');   end   case 'FileNameInput'   fprintf('FileNameInput\n');   evalin('base','hold off')   evalin('base','clear m0 m1 s0 s1 w0 w1 p0 features targets')   evalin('base','h =  findobj(''Tag'', ''BayesError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''TestSetError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''TrainSetError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','region = [0 0 0 0 500];')   evalin('base','filename = get(gcbo, ''String'');')   evalin('base','pathname = cd;')   evalin('base','[features, targets] = load_file([pathname ''\'' filename], ''points'', region);')    case 'SearchForFile'   fprintf('SearchForFile\n');    evalin('base','region = [0 0 0 0 500];')   evalin('base','[filename, pathname] = uigetfile(''*.mat'', ''Open file ...'');')   if (evalin('base','filename ~= 0')),	   evalin('base','clear m0 m1 s0 s1 w0 w1 p0 features targets')       evalin('base','h =  findobj(''Tag'', ''BayesError'');')       evalin('base','set(h, ''String'', '''');')       evalin('base','h =  findobj(''Tag'', ''TestSetError'');')       evalin('base','set(h, ''String'', '''');')       evalin('base','h =  findobj(''Tag'', ''TrainSetError'');')       evalin('base','set(h, ''String'', '''');')       evalin('base','h = findobj(''Tag'', ''FileNameInput'');')	   evalin('base','set(h, ''String'', [pathname filename]);')       evalin('base','[features, targets] = load_file([pathname filename], ''points'', region);')       evalin('base','region = calculate_region(features, [zeros(1,4) 100]);')   end    case 'EnterManualDist'   fprintf('EnterManualDist\n');   classifier_commands('ClearWorkspace');   evalin('base','ttl	= ''Manual definition of distribution'';')   evalin('base','n0		= str2num(char(inputdlg(''Enter the number of Gaussians in class 0:'',ttl,1,cellstr(num2str(1)))));')   evalin('base','n1		= str2num(char(inputdlg(''Enter the number of Gaussians in class 1:'',ttl,1,cellstr(num2str(1)))));')   evalin('base','p0		= str2num(char(inputdlg(''Enter the probability of class 0:'',ttl,1,cellstr(num2str(0.5)))));')   evalin('base','m0		= zeros(n0,2);')   evalin('base','m1 	= zeros(n1,2);')   evalin('base','s0  	= zeros(n0,2,2);')   evalin('base','s1  	= zeros(n1,2,2);')   evalin('base','for i = 1:n0, s0(i,:,:) = eye(2); end')   evalin('base','for i = 1:n1, s1(i,:,:) = eye(2); end')   evalin('base','w0 	= ones(n0,1)/n0;')   evalin('base','w1 	= ones(n1,1)/n1;')   evalin('base','save synthetic m0 m1 s0 s1 w0 w1 p0')   evalin('base','uiwait(enter_distributions);')   evalin('base','region = [0 0 0 0 500];')   evalin('base','[m0, m1, s0, s1, w0, w1, p0] = load_file(''synthetic'', ''dist'', region);')   case 'LoadDistFile'  fprintf('LoadDistFile\n');   evalin('base','region = [0 0 0 0 500];')   evalin('base','[filename, pathname] = uigetfile(''*.mat'', ''Open file ...'');')   if (evalin('base','filename ~= 0')),      evalin('base','[m0, m1, s0, s1, w0, w1, p0] = load_file([pathname filename], ''dist'', region);')   end    case 'ManualGraphData'   fprintf('ManualGraphData\n');   %Graphically enter a data set   evalin('base','if ~(exist(''region'')), region = [-1 1 -1 1 100];end');   evalin('base','if (sum(region(1:4)) == 0), region = [-1 1 -1 1 100];end');   evalin('base','if ~(exist(''features'')), features = []; end');   evalin('base','if ~(exist(''targets'')), targets = []; end');   evalin('base','if ~(exist(''m0'')), m0 = []; m1 = []; s0 = []; s1 = []; w0 = []; w1 = []; end');   evalin('base','[new_features, new_targets, new_m0, new_m1, new_s0, new_s1, new_w0, new_w1, p0, region] = click_points(region);');      evalin('base','features  = [features, new_features];');   evalin('base','targets   = [targets, new_targets];');   evalin('base','m0        = [m0; new_m0];');   evalin('base','m1        = [m1; new_m1];');   evalin('base','s0        = [s0; new_s0];');   evalin('base','s1        = [s1; new_s1];');   evalin('base','w0        = [w0; new_w0];w0=w0/sum(w0);');   evalin('base','w1        = [w1; new_w1];w1=w1/sum(w1);');   evalin('base','p0        = length(w0)/(length(w0)+length(w1));');   evalin('base','region = calculate_region(features, [zeros(1,4) 100]);')     case 'SaveFeatures'   fprintf('SaveFeatures\n');   evalin('base','[filename, pathname] = uiputfile(''*.mat'', ''Save file ...'');')   if (evalin('base','filename ~= 0')),      evalin('base','save([pathname filename], ''features'', ''targets'');')   end   case 'SaveParameters'  fprintf('SaveParameters\n');   evalin('base','[filename, pathname] = uiputfile(''*.mat'', ''Save file ...'');')   if (evalin('base','filename ~= 0')),      evalin('base','save([pathname filename], ''m0'', ''m1'', ''s0'', ''s1'', ''w0'', ''w1'', ''p0'');')   end    case 'GenerateDistData'   fprintf('GenerateDistData\n');   evalin('base','region = [0 0 0 0 100];')   evalin('base','[features, targets] = generate_data_set  (m0, m1, s0, s1, w0, w1, p0, region);')   evalin('base','region = calculate_region(features, [zeros(1,4) 100]);')   case 'Params'  fprintf('Params\n');   %Print to mean, cov, main directions to workspace    if (evalin('base','~isempty(whos(''features''))'))      %There are features on workspace      evalin('base','train_one  = find(targets == 1);')		evalin('base','train_zero = find(targets == 0);')		%Estimate mean and covariance for class 0      evalin('base','disp([''Mean for class 0 is: '' num2str(mean(features(:,train_zero)''))]);')      evalin('base','disp([''Covariance matrix for class 0 is:''])')      evalin('base','disp(num2str(cov(features(:,train_zero)'')));')      evalin('base','disp([''Probability of class 0 is: '' num2str(length(train_zero)/length(targets))]);')		%Estimate mean and covariance for class 1      evalin('base','disp([''Mean for class 1 is: '' num2str(mean(features(:,train_one)''))]);')      evalin('base','disp([''Covariance matrix for class 1 is:''])')      evalin('base','disp(num2str(cov(features(:,train_one)'')));')      evalin('base','disp([''Probability of class 1 is: '' num2str(length(train_one)/length(targets))]);')         end   case 'MenuZoom'  fprintf('MenuZoom\n');   evalin('base','umtoggle(findobj(gcbf,''Label'',''&Zoom''));')   evalin('base','h = findobj(gcbf, ''Label'', ''&Zoom'');')   evalin('base','v = strcmp(''on'',get(h, ''Checked''));')   if evalin('base','v'),      evalin('base','zoom on')   else                            evalin('base','zoom off')   endcase 'MenuGrid'  fprintf('MenuGrid\n');   evalin('base','umtoggle(findobj(gcbf,''Label'',''&Grid''));')   evalin('base','h = findobj(gcbf, ''Label'', ''&Grid'');')   evalin('base','v = strcmp(''on'',get(h, ''Checked''));')   if evalin('base','v'),      evalin('base','grid on')   else      evalin('base','grid off')   end   case 'Copy'  fprintf('Copy\n');   evalin('base','h = figure;')   evalin('base','c = copyobj(findobj(''Type'',''axes''),h);')   evalin('base','set(gca,''Position'',[0.1300    0.1100    0.7750    0.8150])')   %evalin('base','colormap([198 198 255; 240 255 240]/255)')   evalin('base','print -dmeta')   case 'Print'  fprintf('Print\n');   evalin('base','h = figure;')   evalin('base','c = copyobj(findobj(''Type'',''axes''),h);')   evalin('base','set(gca,''Position'',[0.1300    0.1100    0.7750    0.8150])')   evalin('base','colormap([198 198 255; 240 255 240]/255)')   evalin('base','printpreview')   case 'Exit'  fprintf('Print\n');   evalin('base','h = findobj(''Tag'', ''Messages'');')   evalin('base','set(h,''String'','''');')   evalin('base','h =  findobj(''Tag'', ''TestSetError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''TrainSetError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''FileNameInput'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''PercentTraining'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''Redraws'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''HowMany'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','set(gcf, ''pointer'', ''arrow'');')      evalin('base','close')    case 'SeparatePreprocessing'  fprintf('Print\n');   evalin('base','umtoggle(findobj(gcbf,''Label'',''&Perform preprocessing separately for each class''));')   case 'ShowPartitions'  fprintf('Print\n');   evalin('base','umtoggle(findobj(gcbf,''Label'',''&Show center of partitions during training''));')    case 'ShowTrainingPoints'   fprintf('ShowTrainingPoints\n');   evalin('base','umtoggle(findobj(gcbf,''Label'',''Show &Training points''));')   case 'ShadeDecisionRegion'  fprintf('ShadeDecisionRegion\n');   evalin('base','umtoggle(findobj(gcbf,''Label'',''Shade &Decision Regions''));')   case 'ClearBounds'  fprintf('ClearBounds\n');   %Clear all bounds   evalin('base','hold off')   evalin('base','plot_scatter(features, targets, gcbf)')   evalin('base','drawnow')   evalin('base','h =  findobj(''Tag'', ''TestSetError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''TrainSetError'');')   evalin('base','set(h, ''String'', '''');')case 'ClearWorkspace'  fprintf('ClearWorkspace\n');   %Clear all    evalin('base','h =  findobj(''Tag'', ''TestSetError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''TrainSetError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''BayesError'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','h =  findobj(''Tag'', ''FileNameInput'');')   evalin('base','set(h, ''String'', '''');')   evalin('base','hold off')   evalin('base','plot(0,0); grid on;')   evalin('base','clear all')case 'MixFeatures'  fprintf('MixFeatures\n');   %Mix (permute) the features   if (evalin('base','exist(''features'')') & evalin('base','exist(''targets'')')),       evalin('base','indexes  = randperm(length(targets));')       evalin('base','features = features(:,indexes);')       evalin('base','targets  = targets(indexes);')       evalin('base','h = findobj(''Tag'', ''Messages'');')       evalin('base','set(h,''String'',''Features were permuted.'');')   else       error('No features or targets in workspace!');   endcase 'About'   im = imread('about','bmp');   plot(0,0)   h  = image(im);end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -