1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/a_bad_geek-FastICA

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
gui_cb.m 19 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Ye Jianjie Отправлено 30.03.2014 13:35 05b0778
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
function gui_cb(action)
%
% This file is used by FASTICAG
% This file holds the callbacks to the main window
% @(#)$Id: gui_cb.m,v 1.5 2003/09/10 10:33:41 jarmo Exp $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Global variables
% Handle to the main figure
global hf_FastICA_MAIN;
% Handles for needed controls in main figure;
global ht_FastICA_mixedStatus;
global ht_FastICA_dim;
global ht_FastICA_numOfSamp;
global ht_FastICA_newDim;
global ht_FastICA_whiteStatus;
global ht_FastICA_icaStatus;
global hpm_FastICA_approach;
global he_FastICA_numOfIC;
global hpm_FastICA_g;
global hpm_FastICA_stabilization;
% Main values are stored here
global g_FastICA_mixedsig;
global g_FastICA_mixedmean;
global g_FastICA_pca_D;
global g_FastICA_pca_E;
global g_FastICA_white_sig;
global g_FastICA_white_wm;
global g_FastICA_white_dwm;
global g_FastICA_ica_sig;
global g_FastICA_ica_A;
global g_FastICA_ica_W;
global g_FastICA_initGuess;
global g_FastICA_approach;
global g_FastICA_numOfIC;
global g_FastICA_g;
global g_FastICA_finetune;
global g_FastICA_a1;
global g_FastICA_a2;
global g_FastICA_myy;
global g_FastICA_stabilization;
global g_FastICA_epsilon;
global g_FastICA_maxNumIte;
global g_FastICA_maxFinetune;
global g_FastICA_sampleSize;
global g_FastICA_initState;
global g_FastICA_displayMo;
global g_FastICA_displayIn;
global g_FastICA_verbose;
% String values are here
global c_FastICA_appr_strV;
global c_FastICA_g1_strD;
global c_FastICA_g1_strV;
global c_FastICA_g2_strD;
global c_FastICA_g2_strV;
global c_FastICA_finetune_strD;
global c_FastICA_finetune_strV;
global c_FastICA_stabili_strV;
global c_FastICA_iSta_strV;
global c_FastICA_dMod_strV;
global c_FastICA_verb_strV;
% What is the load type of load dialog
global g_FastICA_loadType;
% Global variable for stopping the ICA calculations
global g_FastICA_interrupt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% What ever we do, it will take some time... not much, but some :-)
watchonInFigure = watchon;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
switch action
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'InitAll'
% If the data is already loaded, then get the information from data
% and show to the user (also set g_FastICA_numOfIC)
if ~isempty(g_FastICA_mixedsig)
set(ht_FastICA_mixedStatus, 'String', '');
[dim, numofsamp] = size(g_FastICA_mixedsig);
set(ht_FastICA_dim, 'String', int2str(dim));
set(ht_FastICA_numOfSamp, 'String', int2str(numofsamp));
set(ht_FastICA_newDim, 'String', int2str(dim));
set(he_FastICA_numOfIC, 'String', int2str(dim));
g_FastICA_numOfIC = dim;
g_FastICA_mixedmean = [];
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'LoadData'
handle = findobj('Tag','f_FastICALoad'); % Check if the window is already
if isempty(handle) % open. If not then open it.
pos = get(hf_FastICA_MAIN, 'Position');
% Based on the feedback obtained from some users, it seems
% that at least in some systems, pos can sometimes be empty. A
% similar check is done a few lines below.
if ~isempty (pos),
gui_l(pos(1), pos(2));
else
gui_l (0, 0);
end
else
if strcmp(g_FastICA_loadType, 'data') % Check if it was the same load
figure(handle); % window. If it wasn't then
else % close the other window first
close(handle); % and then open the load window
fprintf('''Load initial guess'' -dialog closed!\n');
pos = get(hf_FastICA_MAIN, 'Position');
if ~isempty (pos),
gui_l(pos(1), pos(2));
else
gui_l (0, 0);
end
end
end
% gui_cb NewData; - is called from the load function if not canceled...
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'NewData'
% New data is loaded or the old data changed. We need to find out
% somethings about the new data... and do some other stuff also...
[dim, numofsamp] = size(g_FastICA_mixedsig);
set(ht_FastICA_dim, 'String', dim);
set(ht_FastICA_newDim, 'String', dim);
set(ht_FastICA_numOfSamp, 'String', numofsamp);
set(he_FastICA_numOfIC, 'String', int2str(dim));
g_FastICA_numOfIC = dim; % Default for numOfIC = the new dimension
% PCA needs to be calculated again.
g_FastICA_pca_E = []; % We use this to check if PCA is calculated
gui_cb NullWhite; % Whitening needs to be done again also
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'NullWhite'
% Whitening needs to done again next time it's needed
g_FastICA_white_sig = []; % We use this to check if whitening is calculated
gui_cb NullICA; % The FPICA must be calculated again
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'NullICA'
% If IC's are needed they have to bee calculated again
g_FastICA_ica_sig = []; % We use this to check if FPICA is calculated
set(ht_FastICA_icaStatus,'String','Not yet done');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Transpose'
if isempty(g_FastICA_mixedmean)
g_FastICA_mixedsig = g_FastICA_mixedsig';
else
g_FastICA_mixedsig = (g_FastICA_mixedsig + ...
g_FastICA_mixedmean * ...
ones(1,size(g_FastICA_mixedsig, 2)))';
g_FastICA_mixedmean = [];
end
gui_cb NewData; % Data has been changed
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'DoPCA'
if ~isempty(g_FastICA_mixedsig)
% We'll remove mean of the data here also just in case...
if isempty(g_FastICA_mixedmean)
[g_FastICA_mixedsig, g_FastICA_mixedmean] = remmean(g_FastICA_mixedsig);
end
% Do PCA interactively: ask the user for eigenvalues
[g_FastICA_pca_E, g_FastICA_pca_D] = pcamat(g_FastICA_mixedsig, ...
0, 0, 'gui', ...
deblank(c_FastICA_verb_strV(g_FastICA_verbose,:)));
newdim = size(g_FastICA_pca_D, 1);
set(ht_FastICA_newDim, 'String', int2str(newdim));
set(he_FastICA_numOfIC, 'String', int2str(newdim));
g_FastICA_numOfIC = newdim;
gui_cb NullWhite; % Whitening needs to be done again also
% but we'll do it when it's needed.
else
fprintf('Data not loaded yet!\n\n');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'OrigDim'
gui_cb NewData;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'ShowMixed'
if ~isempty(g_FastICA_mixedsig)
handle = findobj('Tag','f_FastICA_mix'); % Check if the window is already
if isempty(handle) % open. If not then open it.
figure('Tag', 'f_FastICA_mix', ...
'Name', 'FastICA: Plot data', ...
'NumberTitle', 'off');
else
figure(handle);
clf; % clear the figure for next plots
end
if isempty(g_FastICA_mixedmean)
icaplot('dispsig',g_FastICA_mixedsig, 0, 0, 0, 'Mixed signals');
else
icaplot('dispsig',g_FastICA_mixedsig + g_FastICA_mixedmean * ...
ones(1, size(g_FastICA_mixedsig, 2)), 0, 0, 0, 'Mixed signals');
end
else
fprintf('Data not loaded yet!\n\n');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'ShowWhite'
if ~isempty(g_FastICA_mixedsig)
if isempty(g_FastICA_white_sig) % if whitening is not done, we need to
gui_cb Whiten; % do it before we can display the
end % whitened signals
handle = findobj('Tag','f_FastICA_white'); % Check if the window is already
if isempty(handle) % open. If not then open it.
figure('Tag', 'f_FastICA_white', ...
'Name', 'FastICA: Plot whitened', ...
'NumberTitle', 'off');
else
figure(handle);
clf; % clear the figure for next plots
end
icaplot('dispsig',g_FastICA_white_sig,0,0,0,'Whitened signals');
else
fprintf('Data not loaded yet!\n\n');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Whiten'
set(ht_FastICA_whiteStatus,'String','Computing...');
% If PCA is not calculated, we'll have to calculate it now,
% we'll do it without guestions - we don't reduce the dimension
% here - but PCAMAT might reduce the dimension automatically.
if isempty(g_FastICA_pca_E)
% We'll remove mean of the data here also just in case...
if isempty(g_FastICA_mixedmean)
[g_FastICA_mixedsig, g_FastICA_mixedmean] = remmean(g_FastICA_mixedsig);
end
[g_FastICA_pca_E, g_FastICA_pca_D] = pcamat(g_FastICA_mixedsig, 1, ...
size(g_FastICA_mixedsig, ...
1), 'off', ...
deblank(c_FastICA_verb_strV(g_FastICA_verbose,:)));
% Check if the dimension was reduced automatically
newdim = size(g_FastICA_pca_D, 1);
set(ht_FastICA_newDim, 'String', int2str(newdim));
% Check if the numOfIC now has illegal value entered
% We do that by telling the program that there is new value
% entered for NumOfIC.
gui_cb ChangeNumOfIC;
end
% And now we can calculate whitening...
[g_FastICA_white_sig, g_FastICA_white_wm, g_FastICA_white_dwm] = ...
whitenv(g_FastICA_mixedsig, g_FastICA_pca_E, g_FastICA_pca_D, deblank(c_FastICA_verb_strV(g_FastICA_verbose,:)));
set (ht_FastICA_whiteStatus,'String','');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'ChangeApproach'
% Get the old value for g
eval(['g_str = c_FastICA_g' int2str(g_FastICA_approach) '_strV;']);
old_g = deblank(g_str(g_FastICA_g,:));
% Get and set the new value for approach
g_FastICA_approach = get(hpm_FastICA_approach, 'Value');
% The possible values for g depend on the value of approach...
eval(['g_str = c_FastICA_g' int2str(g_FastICA_approach) '_strD;']);
set(hpm_FastICA_g, 'String', g_str);
% Match the old g value from the new g values so that if the
% old_g can be found from the new values (anywhere), then set new g
% to that value, and if it's not found then set the new value to 1.
match = 0;
eval(['g_str = c_FastICA_g' int2str(g_FastICA_approach) '_strV;']);
for i=1:size(g_str,1)
if strcmp(old_g, deblank(g_str(i,:)))
match = i;
end
end
if match == 0
match = 1; % the old g is not availabe anymore, set g = 1.
end
g_FastICA_g = match;
set(hpm_FastICA_g, 'Value', match);
gui_cb NullICA; % The options are changed so we must calculate ICA again
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'ChangeNumOfIC'
% Get the new value... and store it later on after some checks
numofic = str2num(get(he_FastICA_numOfIC, 'String'));
% The number of IC can't be less than 1 or more than the reduced dimension.
numoficmax = str2num(get(ht_FastICA_newDim, 'String'));
if numofic < 1
set(he_FastICA_numOfIC, 'String', '1');
g_FastICA_numOfIC = 1;
elseif numofic > numoficmax
set(he_FastICA_numOfIC, 'String', int2str (numoficmax));
g_FastICA_numOfIC = numoficmax;
else
g_FastICA_numOfIC = numofic;
end
gui_cb NullICA; % The options are changed so we must calculate ICA again
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'ChangeG'
% Get the new value for g.
g_FastICA_g = get(hpm_FastICA_g, 'Value');
gui_cb NullICA; % The options are changed so we must calculate ICA again
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'ChangeStab'
% Get the new value for g.
g_FastICA_stabilization = get(hpm_FastICA_stabilization, 'Value');
gui_cb NullICA; % The options are changed so we must calculate ICA again
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'AdvOpt'
handle = findobj('Tag','f_FastICAAdvOpt');
if isempty(handle) % Check to see if the window is
pos = get(hf_FastICA_MAIN, 'Position'); % already open...
if ~isempty (pos),
gui_adv(pos(1), pos(2));
else
gui_adv(0, 0);
end
else
figure(handle)
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'ShowICASig'
if ~isempty(g_FastICA_mixedsig)
% If the IC's are not already calculated, we'll do it now
if isempty(g_FastICA_ica_sig)
gui_cb DoFPICA;
end
% The signals may have been already displaued by the FPICA function
% BUT the FPICA may also have shown either the basis of the filters
% so the signals still need to be shown - besides the mean was added
% in only later after FPICA
% Also notice that in this version if there was something wrong in FPICA
% Then the results are []. - We don't try to plot them!
if ~isempty(g_FastICA_ica_sig')
handle = findobj('Tag','f_FastICA_ica'); % Check if the window is already
if isempty(handle) % open. If not then open it.
figure('Tag', 'f_FastICA_ica', ...
'Name', 'FastICA: Plot ICs', ...
'NumberTitle', 'off');
else
figure(handle);
clf; % clear the figure for next plots
end
icaplot('dispsig', g_FastICA_ica_sig, 0, ...
0, 0, 'Independent components');
end
else
fprintf('Data not loaded yet!\n\n');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'DoFPICA'
gui_cb DisableButtons;
g_FastICA_interrupt = 0;
if ~isempty(g_FastICA_mixedsig)
if isempty(g_FastICA_white_sig) % We need the whitened signal here
gui_cb Whiten;
end
set(ht_FastICA_icaStatus,'String','Computing...');
% The possible values for g depend on approach
eval(['g_str = c_FastICA_g' int2str(g_FastICA_approach) '_strV;']);
% We'll contruct a command string which we'll later on evaluate...
% This is where the Fixed point algorithm is used.
command_str = ['[g_FastICA_ica_A,g_FastICA_ica_W]=' ...
'fpica(g_FastICA_white_sig,' ...
'g_FastICA_white_wm,' ...
'g_FastICA_white_dwm,' ...
'''' deblank(c_FastICA_appr_strV(g_FastICA_approach,:)) ...
''',' ...
'g_FastICA_numOfIC,' ...
'''' deblank(g_str(g_FastICA_g,:)) ''',' ...
'''' ...
deblank(c_FastICA_finetune_strV(g_FastICA_finetune,:)) ...
''',' ...
'g_FastICA_a1,' ...
'g_FastICA_a2,' ...
'g_FastICA_myy,' ...
'''' ...
deblank(c_FastICA_stabili_strV(g_FastICA_stabilization,:)) ...
''',' ...
'g_FastICA_epsilon,' ...
'g_FastICA_maxNumIte,' ...
'g_FastICA_maxFinetune,' ...
'''' deblank(c_FastICA_iSta_strV(g_FastICA_initState,:)) ...
''',' ...
'g_FastICA_initGuess,' ...
'g_FastICA_sampleSize,' ...
'''' deblank(c_FastICA_dMod_strV(g_FastICA_displayMo,:)) ...
''',' ...
'g_FastICA_displayIn,' ...
'''' deblank(c_FastICA_verb_strV(g_FastICA_verbose,:)) ...
''');'];
% If the user wants to plot while computing...
% let's at least plot it to the right figure then
if ~strcmp(deblank(c_FastICA_dMod_strV(g_FastICA_displayMo,:)),'off')
handle = findobj('Tag','f_FastICA_ica'); % Check if the window is already
if isempty(handle) % open. If not then open it.
figure('Tag', 'f_FastICA_ica', ...
'Name', 'FastICA: Plot ICs', ...
'NumberTitle', 'off');
else
figure(handle);
clf; % clear the figure for next plots
end
end
% ... and so let's do it...
eval(command_str);
% Also notice that in this version if there was something wrong in FPICA
% Then the results are [].
if ~isempty(g_FastICA_ica_W)
% Add the mean back in.
g_FastICA_ica_sig = g_FastICA_ica_W * g_FastICA_mixedsig ...
+ (g_FastICA_ica_W * g_FastICA_mixedmean) ...
* ones(1,size(g_FastICA_mixedsig, 2));
set (ht_FastICA_icaStatus,'String','Done');
else
gui_cb NullICA; % set icasig=[] and do what ever needs to be done then
end
if ~(g_FastICA_interrupt)
gui_cb EnableButtons;
end
else
fprintf('Data not loaded yet!\n\n');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Interrupt'
g_FastICA_interrupt = 1;
set(ht_FastICA_icaStatus,'String','Interrupted');
gui_cb EnableButtons;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'DisableButtons'
set(findobj('Tag','b_Transpose'),'Enable','off');
set(findobj('Tag','b_ShowMixed'),'Enable','off');
set(findobj('Tag','b_DoPCA'),'Enable','off');
set(findobj('Tag','b_OrigDim'),'Enable','off');
set(findobj('Tag','b_ShowWhite'),'Enable','off');
set(findobj('Tag','b_advOpt'),'Enable','off');
set(findobj('Tag','b_ShowICASig'),'Enable','off');
set(findobj('Tag','b_LoadData'),'Enable','off');
set(findobj('Tag','b_DoFPICA'),'Enable','off');
set(findobj('Tag','b_SaveData'),'Enable','off');
set(findobj('Tag','b_Quit'),'Enable','off');
set(findobj('Tag','b_Interrupt'),'Visible','on');
drawnow;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'EnableButtons'
set(findobj('Tag','b_Transpose'),'Enable','on');
set(findobj('Tag','b_ShowMixed'),'Enable','on');
set(findobj('Tag','b_DoPCA'),'Enable','on');
set(findobj('Tag','b_OrigDim'),'Enable','on');
set(findobj('Tag','b_ShowWhite'),'Enable','on');
set(findobj('Tag','b_advOpt'),'Enable','on');
set(findobj('Tag','b_ShowICASig'),'Enable','on');
set(findobj('Tag','b_LoadData'),'Enable','on');
set(findobj('Tag','b_DoFPICA'),'Enable','on');
set(findobj('Tag','b_SaveData'),'Enable','on');
set(findobj('Tag','b_Quit'),'Enable','on');
set(findobj('Tag','b_Interrupt'),'Visible','off');
drawnow;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'SaveData'
handle = findobj('Tag','f_FastICASave'); % Check if the window is already
if isempty(handle) % open. If not then open it.
pos = get(hf_FastICA_MAIN, 'Position');
if ~isempty (pos),
gui_s(pos(1), pos(2));
else
gui_s(0, 0);
end
else
figure(handle); % window. If it wasn't then
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Quit'
% We'll close the other dialogs if they are open.
Tags = ['f_FastICALoad '
'f_FastICAAdvOpt'
'f_FastICASave '
'f_FastICA_mix '
'f_FastICA_white'
'f_FastICA_ica '];
for i=1:size(Tags,1)
handle = findobj('Tag', deblank(Tags(i,:)));
if ~isempty(handle)
close(handle);
end
end
% Close this window
close(hf_FastICA_MAIN);
% Clear the used global variables.
gui_cg;
% Use return to avoid reaching the watchoff statement at the end
% (There used to be a 'break' statement here, but it resulted in
% errors in more recent version of Matlab -- jarmo)
return;
% ... and we're done.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'About'
gui_help('gui_cb_about');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'Help'
gui_help('gui_cb_help');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end % switch
watchoff (watchonInFigure);

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/a_bad_geek-FastICA.git
git@api.gitlife.ru:oschina-mirror/a_bad_geek-FastICA.git
oschina-mirror
a_bad_geek-FastICA
a_bad_geek-FastICA
master