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

📄 gui_adv.m

📁 fast fixed-point ICA算法的Matlab实现
💻 M
字号:
function gui_adv(x, y)%% This file is needed by FASTICAG% This is the advanced options -dialog% @(#)$Id: gui_adv.m,v 1.3 2003/09/11 09:05:44 jarmo Exp $%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Global variables% Handle to the windowglobal hf_FastICA_AdvOpt;% Handles to some of the controls in windowglobal hpm_FastICA_finetune;global he_FastICA_a1;global he_FastICA_a2;global he_FastICA_myy;global he_FastICA_epsilon;global he_FastICA_maxIterations;global he_FastICA_maxFinetune;global he_FastICA_sampleSizeglobal hpm_FastICA_initState;global hb_FastICA_initGuess;global ht_FastICA_initGuess;global hpm_FastICA_displayMode;global he_FastICA_displayInterval;global hpm_FastICA_verbose;% Some of the main variables neededglobal g_FastICA_initGuess;global g_FastICA_finetune;global g_FastICA_a1;global g_FastICA_a2;global g_FastICA_myy;global g_FastICA_epsilon;global g_FastICA_maxNumIte;global g_FastICA_maxFinetune;global g_FastICA_initState;global g_FastICA_sampleSize;global g_FastICA_displayMo;global g_FastICA_displayIn;global g_FastICA_verbose;global c_FastICA_appr_strD;global c_FastICA_appr_strV;global c_FastICA_finetune_strD;global c_FastICA_finetune_strV;global c_FastICA_iSta_strD;global c_FastICA_iSta_strV;global c_FastICA_dMod_strD;global c_FastICA_dMod_strV;global c_FastICA_verb_strD;global c_FastICA_verb_strV;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Configuration optionsFIGURENAME = 'FastICA: advanced options';FIGURETAG = 'f_FastICAAdvOpt';FIGURESIZE = [x y 450 280];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Check to see if this figure is already open - it should not!% Can't have more than one copy - otherwise the global% variables and handles can get mixed up.if ~isempty(findobj('Tag',FIGURETAG))  error('Error: advanced options dialog already open!');end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Initialize some of the controls' values% Did we already load some initial guesspm_initState_Value = g_FastICA_initState;if isempty(g_FastICA_initGuess) | (g_FastICA_initGuess == 1)  t_initGuess_String = 'Not loaded';else  t_initGuess_String = 'Loaded';end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Create the figurea = figure('Color',[0.8 0.8 0.8], ...	   'PaperType','a4letter', ...	   'Name', FIGURENAME, ...	   'NumberTitle', 'off', ...	   'Tag', FIGURETAG, ...	   'Position', FIGURESIZE, ...	   'Resize', 'off',...	   'MenuBar', 'none');	   hf_FastICA_AdvOpt = a;set(hf_FastICA_AdvOpt, 'HandleVisibility', 'callback');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From here on it get's ugly as I have not had time to clean it up%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Create the framespos_l=2;pos_w=FIGURESIZE(3)-4;pos_h=FIGURESIZE(4)-4;pos_t=2;h_f_adv_background = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Position',[pos_l pos_t pos_w pos_h], ...  'Style','frame', ...  'Tag','f_adv_background');pos_w=120;pos_l=FIGURESIZE(3)-(pos_w+2+2);pos_h=FIGURESIZE(4)-2*4;pos_t=4;h_f_adv_side = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Position',[pos_l pos_t pos_w pos_h], ...  'Style','frame', ...  'Tag','f_adv_side');pos_l=4;pos_w=FIGURESIZE(3)-8-pos_w-2;pos_h=FIGURESIZE(4)-8;pos_t=4;h_f_advopt = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Position',[pos_l pos_t pos_w pos_h], ...  'Style','frame', ...  'Tag','f_advopt');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Controls in f_advoptbgc = get(h_f_advopt, 'BackgroundColor');pos_w1=230;pos_w2=70;pos_frame=get(h_f_advopt, 'Position');pos_h = 20;pos_t = pos_frame(2) + pos_frame(4) - pos_h - 6;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Fine-tune (g)', ...  'Style','text', ...  'Tag','t_727');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;hpm_FastICA_finetune = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',c_FastICA_finetune_strD, ...  'Style','popupmenu', ...  'Tag','pm_finetune', ...  'Value',g_FastICA_finetune);pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Parameter a1 (g = ''tanh'')', ...  'Style','text', ...  'Tag','t_22');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;he_FastICA_a1 = uicontrol('Parent',a, ...  'BackgroundColor',[1 1 1], ...  'HorizontalAlignment','right', ...  'Callback','gui_advc Checka1', ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',num2str(g_FastICA_a1), ...  'Style','edit', ...  'Tag','e_a1');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Parameter a2 (g = ''gauss'')', ...  'Style','text', ...  'Tag','t_222');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;he_FastICA_a2 = uicontrol('Parent',a, ...  'BackgroundColor',[1 1 1], ...  'HorizontalAlignment','right', ...  'Callback','gui_advc Checka2', ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',num2str(g_FastICA_a2), ...  'Style','edit', ...  'Tag','e_a2');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','mu (step size)', ...  'Style','text', ...  'Tag','t_223');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;he_FastICA_myy = uicontrol('Parent',a, ...  'BackgroundColor',[1 1 1], ...  'HorizontalAlignment','right', ...  'Callback','gui_advc CheckMyy', ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',num2str(g_FastICA_myy), ...  'Style','edit', ...  'Tag','e_myy');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','epsilon (stopping criterion)', ...  'Style','text', ...  'Tag','t_23');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;he_FastICA_epsilon = uicontrol('Parent',a, ...  'BackgroundColor',[1 1 1], ...  'HorizontalAlignment','right', ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',num2str(g_FastICA_epsilon), ...  'Style','edit', ...  'Tag','e_epsilon');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Maximum number of iterations', ...  'Style','text', ...  'Tag','t_24');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;he_FastICA_maxIterations = uicontrol('Parent',a, ...  'BackgroundColor',[1 1 1], ...  'HorizontalAlignment','right', ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',num2str(g_FastICA_maxNumIte), ...  'Style','edit', ...  'Tag','e_maxIterations');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Maximum iterations in fine-tuning', ...  'Style','text', ...  'Tag','t_2412');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;he_FastICA_maxFinetune = uicontrol('Parent',a, ...  'BackgroundColor',[1 1 1], ...  'HorizontalAlignment','right', ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',num2str(g_FastICA_maxFinetune), ...  'Style','edit', ...  'Tag','e_maxFinetune');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Sample size (proportion)', ...  'Style','text', ...  'Tag','t_224');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;he_FastICA_sampleSize = uicontrol('Parent',a, ...  'BackgroundColor',[1 1 1], ...  'HorizontalAlignment','right', ...  'Callback','gui_advc CheckSampleSize', ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',num2str(g_FastICA_sampleSize), ...  'Style','edit', ...  'Tag','e_sampleSize');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Initial state', ...  'Style','text', ...  'Tag','t_25');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;hpm_FastICA_initState = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',c_FastICA_iSta_strD, ...  'Style','popupmenu', ...  'Tag','pm_initState', ...  'Value',pm_initState_Value);pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;hb_FastICA_initGuess = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Callback','gui_advc loadGuess', ...  'Position',[pos_l pos_t (pos_w1-60) pos_h], ...  'String','Load initial guess', ...  'UserData', g_FastICA_initGuess, ...  'Tag','b_LoadGuess');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;ht_FastICA_initGuess = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[(pos_l) pos_t (pos_w2) pos_h], ...  'String',t_initGuess_String, ...  'Style','text', ...  'Tag','t_initGuess');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Display mode', ...  'Style','text', ...  'Tag','t_27');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;hpm_FastICA_displayMode = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',c_FastICA_dMod_strD, ...  'Style','popupmenu', ...  'Tag','pm_displayMode', ...  'Value',g_FastICA_displayMo);pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Iterations between displays', ...  'Style','text', ...  'Tag','t_28');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;he_FastICA_displayInterval = uicontrol('Parent',a, ...  'BackgroundColor',[1 1 1], ...  'HorizontalAlignment','right', ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',num2str(g_FastICA_displayIn), ...  'Style','edit', ...  'Tag','e_displayInterval');pos_t = pos_t - pos_h;pos_l = pos_frame(1) + 6;b = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'HorizontalAlignment','left', ...  'Position',[pos_l pos_t pos_w1 pos_h], ...  'String','Verbose', ...  'Style','text', ...  'Tag','t_29');pos_l = pos_frame(1) + pos_frame(3) - 6 - pos_w2;hpm_FastICA_verbose = uicontrol('Parent',a, ...  'BackgroundColor',bgc, ...  'Position',[pos_l pos_t pos_w2 pos_h], ...  'String',c_FastICA_verb_strD, ...  'Style','popupmenu', ...  'Tag','pm_verbose', ...  'Value',g_FastICA_verbose);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Controls in f_adv_sidepos_vspace = 6;pos_hspace = 10;pos_frame = get(h_f_adv_side, 'Position');pos_w = 100;pos_h = 30;pos_l = pos_frame(1) + pos_hspace;pos_t = pos_frame(2) + pos_frame(4) - pos_h - pos_vspace;b = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Callback','gui_advc OK', ...  'Position',[pos_l pos_t pos_w pos_h], ...  'String','OK', ...  'Tag','b_advOK');pos_t=pos_t-pos_h-pos_vspace;b = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Callback','gui_advc Cancel', ...  'Position',[pos_l pos_t pos_w pos_h], ...  'String','Cancel', ...  'Tag','b_advCancel');pos_t=pos_t-pos_h-pos_vspace;b = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Callback','gui_advc Default', ...  'Position',[pos_l pos_t pos_w pos_h], ...  'String','Default', ...  'Tag','b_advDefault');pos_t=pos_t-pos_h-pos_vspace;b = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Callback','gui_advc Apply', ...  'Position',[pos_l pos_t pos_w pos_h], ...  'String','Apply', ...  'Tag','b_advApply');pos_t = pos_frame(2) + pos_vspace;b = uicontrol('Parent',a, ...  'BackgroundColor',[0.701961 0.701961 0.701961], ...  'Callback','gui_advc Help', ...  'Position',[pos_l pos_t pos_w pos_h], ...  'String','Help', ...  'Tag','b_advHelp');

⌨️ 快捷键说明

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