📄 fuzzy_g.m
字号:
%Graphical Interface for the fuzzy inference system%%________________________________________________January 24,1997_____global modelglobal memb_funglobal model_biasglobal archglobal format_outglobal initglobal no_setsglobal mod_idglobal mod_pathglobal mhist_idglobal mhist_pathglobal err_idglobal err_pathglobal ehist_idglobal ehist_pathglobal pred_idglobal pred_pathglobal memo_idglobal memo_pathmod_id='model.mat';mhist_id='mhist.txt';err_id='errors.mat';ehist_id='ehist.txt';pred_id='out_hat.mat';memo_id='memo.txt';c=computer;current_dir=pwd;if isunix current_dir=[current_dir,'/'];else if strcmp(c(1:2),'PC') current_dir=[current_dir,'\']; end if strcmp(c(1:2),'MA') current_dir=[current_dir,':']; endendmod_path=current_dir;mhist_path=current_dir;err_path=current_dir;ehist_path=current_dir;pred_path=current_dir;memo_path=current_dir;window=figure( 'Units', 'pixel' ,... 'Position', [40,40,740,275] ,... 'Resize', 'off' ,... 'Color', [.5,.5,.5] ,... 'NumberTitle', 'off' ,... 'MenuBar', 'none' ,... 'Name', 'Fuzzy Model');true_ok=uicontrol(window,... 'Style', 'push' ,... 'String', 'OK' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', ['close(window),' ,... 'if strcmp(pr,''one_mod''),' ,... 'fuz_aux(pr,comp,data);' ,... 'elseif strcmp(pr,''comp_err''),' ,... 'fuz_aux(pr,comp_min,comp_max,data);' ,... 'elseif strcmp(pr,''evaluate''),' ,... 'fuz_aux(pr,centers,bases,par,bias,in);',... 'end,' ,... 'clear centers bases par bias in,' ,... 'clear model memb_fun model_bias,' ,... 'clear arch format_out init no_sets,' ,... 'clear mod_id mod_path mhist_id mhist_path,' ,... 'clear err_id err_path ehist_id ehist_path,' ,... 'clear pred_id pred_path in_id in_path,' ,... 'clear memo_id memo_path,' ,... 'clear window true_ok,' ,... 'clear getdata getmodel getinputs,' ,... 'clear mod_par_butt mod_hist_butt,' ,... 'clear err_comp_butt err_hist_butt,' ,... 'clear pred_butt,' ,... 'clear X_frame X_txt X_sli X_cur,' ,... 'clear comp_minmax_frame,' ,... 'clear comp_min_txt comp_min_sli comp_min_cur,',... 'clear comp_max_txt comp_max_sli comp_max_cur,',... 'clear comp_frame comp_txt comp_sli comp_cur,' ,... 'clear init_txt init_frame,' ,... 'clear pr pr1 pr2 pr3,' ,... 'clear fun1 fun2,' ,... 'clear arch1 arch2,' ,... 'clear out1 out2,' ,... 'clear bias1 bias2,' ,... 'clear init1 init2,' ,... 'clear comp comp_min comp_max,' ,... 'clear tmod_id tmod_path,' ,... 'clear data data_id data_path,' ,... 'clear current_dir c,' ,... 'return'] ,... 'Position', [670,240,65,25]);set(true_ok,'visible','off');uicontrol(window,... 'Style', 'push' ,... 'String', 'Close' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', ['close(window),' ,... 'clear centers bases par bias in,' ,... 'clear model memb_fun model_bias,' ,... 'clear arch format_out init no_sets,' ,... 'clear mod_id mod_path mhist_id mhist_path,' ,... 'clear err_id err_path ehist_id ehist_path,' ,... 'clear pred_id pred_path in_id in_path,' ,... 'clear memo_id memo_path,' ,... 'clear window true_ok,' ,... 'clear getdata getmodel getinputs,' ,... 'clear mod_par_butt mod_hist_butt,' ,... 'clear err_comp_butt err_hist_butt,' ,... 'clear pred_butt,' ,... 'clear X_frame X_txt X_sli X_cur,' ,... 'clear comp_minmax_frame,' ,... 'clear comp_min_txt comp_min_sli comp_min_cur,',... 'clear comp_max_txt comp_max_sli comp_max_cur,',... 'clear comp_frame comp_txt comp_sli comp_cur,' ,... 'clear init_txt init_frame,' ,... 'clear pr pr1 pr2 pr3,' ,... 'clear fun1 fun2,' ,... 'clear arch1 arch2,' ,... 'clear out1 out2,' ,... 'clear bias1 bias2,' ,... 'clear init1 init2,' ,... 'clear comp comp_min comp_max,' ,... 'clear data data_id data_path,' ,... 'clear tmod_id tmod_path,' ,... 'clear current_dir c,' ,... 'return'] ,... 'Position', [670,210,65,25]);uicontrol(window,... 'Style', 'push' ,... 'String', 'About...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', 'about' ,... 'Position', [670,180,65,25]);uicontrol(window,... 'Style', 'push' ,... 'String', 'Help...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', ';' ,... 'Position', [670,150,65,25]);getdata=uicontrol(window,... 'Style', 'push' ,... 'String', 'Get data from...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', ['[data_id,data_path]=uigetfile(''*.mat'',''Get Data from...'');' ,... 'if data_id~=0,' ,... 'clear data,' ,... 'eval([''load '',data_path,data_id]);' ,... 'if exist(''data''),' ,... 'set(true_ok,''visible'',''on'');' ,... 'if comp<size(data,2)-1, comp=size(data,2)-1;' ,... 'set(comp_sli,''Value'',comp);' ,... 'set(comp_cur,''String'',num2str(comp));' ,... 'end,' ,... 'if comp_min<size(data,2)-1, comp_min=size(data,2)-1;' ,... 'if comp_max<comp_min+1, comp_max=comp_min+1;' ,... 'set(comp_max_sli,''Value'',comp_max);' ,... 'set(comp_max_cur,''String'',num2str(comp_max));' ,... 'end,' ,... 'set(comp_min_sli,''Value'',comp_min);' ,... 'set(comp_min_cur,''String'',num2str(comp_min));' ,... 'end,' ,... 'else,' ,... 'set(true_ok,''visible'',''off'');' ,... 'end,' ,... 'end'] ,... 'Position', [495,35,240,25]);set(getdata,'visible','on');getmodel=uicontrol(window,... 'Style', 'push' ,... 'String', 'Get Model from...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', ['[tmod_id,tmod_path]=uigetfile(''*.mat'',''Get Model from...'');' ,... 'if tmod_id~=0,' ,... 'clear centers,' ,... 'eval([''load '',tmod_path,tmod_id]);' ,... 'if exist(''centers''),' ,... 'if exist(''in''),' ,... 'if size(centers,2)==size(in,2),' ,... 'set(true_ok,''visible'',''on'');' ,... 'else,' ,... 'set(true_ok,''visible'',''off'');' ,... 'end,' ,... 'end,' ,... 'set(comp_sli,''Value'',size(centers,1));' ,... 'set(comp_cur,''String'',num2str(size(centers,1)));' ,... 'if strcmp(memb_fun,''gaussian''),' ,... 'set(fun1,''value'',1),' ,... 'set(fun2,''value'',0),' ,... 'set(fun2,''visible'',''off''),' ,... 'elseif strcmp(memb_fun,''triangular''),' ,... 'set(fun1,''value'',0),' ,... 'set(fun2,''value'',1),' ,... 'set(fun1,''visible'',''off''),' ,... 'end,' ,... 'if strcmp(arch,''comb''),' ,... 'set(arch1,''value'',1),' ,... 'set(arch2,''value'',0),' ,... 'set(arch2,''visible'',''off''),' ,... 'elseif strcmp(arch,''weigthed''),' ,... 'set(arch1,''value'',0),' ,... 'set(arch2,''value'',1),' ,... 'set(arch1,''visible'',''off''),' ,... 'end,' ,... 'if strcmp(format_out,''linear''),' ,... 'set(out1,''value'',1),' ,... 'set(out2,''value'',0),' ,... 'set(out2,''visible'',''off''),' ,... 'elseif strcmp(format_out,''constant''),' ,... 'set(out1,''value'',0),' ,... 'set(out2,''value'',1),' ,... 'set(out1,''visible'',''off''),' ,... 'end,' ,... 'if strcmp(model_bias,''no_bias''),' ,... 'set(bias1,''value'',1),' ,... 'set(bias2,''value'',0),' ,... 'set(bias2,''visible'',''off''),' ,... 'elseif strcmp(model_bias,''bias''),' ,... 'set(bias1,''value'',0),' ,... 'set(bias2,''value'',1),' ,... 'set(bias1,''visible'',''off''),' ,... 'end,' ,... 'else,' ,... 'set(true_ok,''visible'',''off'');' ,... 'end,' ,... 'end'] ,... 'Position', [495,65,240,25]);set(getmodel,'visible','off');getinputs=uicontrol(window,... 'Style', 'push' ,... 'String', 'Get Inputs from...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', ['[in_id,in_path]=uigetfile(''*.mat'',''Get Inputs from...'');' ,... 'if in_id~=0,' ,... 'clear in,' ,... 'eval([''load '',in_path,in_id]);' ,... 'if exist(''centers'') & exist(''in''),' ,... 'if size(centers,2)==size(in,2),' ,... 'set(true_ok,''visible'',''on'');' ,... 'else,' ,... 'set(true_ok,''visible'',''off'');' ,... 'end,' ,... 'end,' ,... 'end'] ,... 'Position', [495,35,240,25]);set(getinputs,'visible','off');mod_par_butt=uicontrol(window,... 'Style', 'push' ,... 'String', 'Save Model in...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', '[mod_id,mod_path]=uiputfile(''model.mat'',''Save Model as...'');' ,... 'Position', [495,5,240,25]);set(mod_par_butt,'visible','on'); mod_hist_butt=uicontrol(window,... 'Style', 'push' ,... 'String', 'Save training history in...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', '[mhist_id,mhist_path]=uiputfile(''mhist.txt'',''Save history as...'');',... 'Position', [250,5,240,25]);set(mod_hist_butt,'visible','on');err_comp_butt=uicontrol(window,... 'Style', 'push' ,... 'String', 'Save errors'' matrix in...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', '[err_id,err_path]=uiputfile(''errors.mat'',''Save error matrix as...'');',... 'Position', [495,5,240,25]);set(err_comp_butt,'visible','off');err_hist_butt=uicontrol(window,... 'Style', 'push' ,... 'String', 'Save comp/err history in...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', '[ehist_id,ehist_path]=uiputfile(''ehist.txt'',''Save history as...'');',... 'Position', [250,5,240,25]);set(err_hist_butt,'visible','off');pred_butt=uicontrol(window,... 'Style', 'push' ,... 'String', 'Save the predicted output in...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', '[pred_id,pred_path]=uiputfile(''out_hat.mat'',''Save the output as...'');',... 'Position', [495,5,240,25]);set(pred_butt,'visible','off');uicontrol(window,... 'Style', 'push' ,... 'String', 'Save memo in...' ,... 'BackGroundColor', [.5,.5,.5] ,... 'CallBack', '[memo_id,memo_path]=uiputfile(''memo.txt'',''Save memo as...'');',... 'Position', [5,5,240,25]);X_frame=uicontrol(window,... 'Style', 'frame' ,... 'BackGroundColor', [.5,.5,.5] ,... 'Position', [495,135,170,65]);set(X_frame,'visible','off');X_txt=uicontrol(window,... 'Style', 'text' ,... 'String', 'No of X-validation sets:' ,... 'BackGroundColor', [.5,.5,.5] ,... 'Position', [500,175,160,18]);set(X_txt,'visible','off');no_sets=10;X_sli=uicontrol(window,... 'Style', 'slider' ,... 'BackGroundColor', [.5,.5,.5] ,... 'Min', 2 ,... 'Max', 20 ,... 'Value', no_sets ,... 'CallBack', ['c=get(X_sli,''Value'');' ,... 'no_sets=no_sets+sign(c-no_sets);' ,... 'set(X_sli,''Value'',no_sets);' ,... 'set(X_cur,''String'',num2str(get(X_sli,''Value'')))'] ,... 'Position', [500,140,160,18]);set(X_sli,'visible','off');X_cur=uicontrol(window,... 'Style', 'text' ,... 'BackGroundColor', [.8,.8,.8] ,... 'String', num2str(get(X_sli,'Value')) ,... 'Position', [640,160,20,16]);set(X_cur,'visible','off');comp_minmax_frame=uicontrol(window,... 'Style', 'frame',... 'BackGroundColor', [.5,.5,.5],... 'Position', [305,175,185,95]);set(comp_minmax_frame,'visible','off');comp_min_txt=uicontrol(window,... 'Style', 'text' ,... 'String', 'Min No of rules:' ,... 'BackGroundColor', [.5,.5,.5] ,... 'Position', [310,245,155,18]);set(comp_min_txt,'visible','off');comp_min=1;comp_min_sli=uicontrol(window,... 'Style', 'slider' ,... 'BackGroundColor', [.5,.5,.5] ,... 'Min', 1 ,... 'Max', 40 ,... 'Value', comp_min ,... 'CallBack', ['c=get(comp_min_sli,''Value'');' ,... 'comp_min=comp_min+sign(c-comp_min);' ,... 'set(comp_min_sli,''Value'',comp_min);' ,... 'set(comp_min_cur,''String'',num2str(get(comp_min_sli,''Value'')));' ,... 'if (comp_max<comp_min+1),' ,... ' comp_max=comp_min+1;' ,... 'end;' ,... 'set(comp_max_sli,''Value'',comp_max);' ,... 'set(comp_max_cur,''String'',num2str(comp_max))'] ,... 'Position', [310,225,175,18]);set(comp_min_sli,'visible','off');comp_min_cur=uicontrol(window,... 'Style', 'text' ,... 'BackGroundColor', [.8,.8,.8] ,... 'String', num2str(get(comp_min_sli,'Value')) ,... 'Position', [465,245,20,16]);set(comp_min_cur,'visible','off');comp_max_txt=uicontrol(window,...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -