📄 mfbox_fasticag.m
字号:
function varargout=mfbox_fasticag(varargin)% MFBOX_FASTICAG M-file for mfbox_fasticag.fig%% See also: GUIDE, GUIDATA, GUIHANDLES%% Copyright by Ingo R. Keck% Signal Processing & Information Theory group% Institute of Biophysics, University of Regensburg, Germany% Homepage: http://ingokeck.de% http://www-aglang.uni-regensburg.de%% This file is free software, subject to the % GNU GENERAL PUBLIC LICENSE, see gpl.txt% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',mfilename, ... 'gui_Singleton',gui_Singleton, ... 'gui_OpeningFcn',@mfbox_fasticag_OpeningFcn, ... 'gui_OutputFcn',@mfbox_fasticag_OutputFcn, ... 'gui_LayoutFcn',[] , ... 'gui_Callback',[]);if (nargin&&(ischar(varargin{1}))) gui_State.gui_Callback = str2func(varargin{1});endif (nargout) [varargout{1:nargout}] = gui_mainfcn(gui_State,varargin{:});else gui_mainfcn(gui_State,varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before mfbox_fasticag is made visible.function mfbox_fasticag_OpeningFcn(hObject,eventdata,handles,varargin)% varargin{1} contains data X% varargin{2} (optional) contains data mask% varargin{3} (optional) contains the parameters% varargin{4} (optional) contains runflag (0: param edit only, 1: param+run, 2: run only)handles.output = hObject;handles.X = varargin{1};s = size(handles.X);handles.dim = s(1:end-1);if (length(handles.dim)==1), handles.dim = [handles.dim,1]; endhandles.n = s(end);if (nargin>4), handles.mask = varargin{2};else handles.mask = logical(ones(handles.dim));endif (nargin>5), handles.params = varargin{3};else handles.params = [];endif (nargin>6), handles.runflag = varargin{4};else handles.runflag = 1;end% sanityze lastEig and firstEigif handles.params.numComponents ~= (handles.params.lastEig-handles.params.firstEig+1) handles.params.lastEig = handles.params.firstEig + handles.params.numComponents - 1;end set(handles.numComponents,'String',mat2str(handles.params.numComponents));set(handles.firstEig,'String',mat2str(handles.params.firstEig));set(handles.lastEig,'String',mat2str(handles.params.lastEig));set(handles.stabilization,'Value',strcmp(handles.params.stabilization,'on'));set(handles.rbsymmetric,'Value',strcmp(handles.params.approach,'symm'));switch handles.params.g case 'pow3' set(handles.rb_g_pow3,'value',1); case 'tanh' set(handles.rb_g_tanh,'value',1); case 'gauss' set(handles.rb_g_gauss,'value',1); case 'skew' set(handles.rb_g_skew,'value',1);endif (handles.runflag<1), set(handles.run,'String','Set ...'); endguidata(hObject,handles);uiwait(handles.fastica);% --- Outputs from this function are returned to the command line.function varargout=mfbox_fasticag_OutputFcn(hObject,eventdata,handles) % varargout{1} the (edited) parameters% varargout{2-4} (optional) contain A,W,Sif (isstruct(handles)) close(handles.fastica) varargout{1} = handles.params;else varargout{1} = [];endfunction numComponents_Callback(hObject,eventdata,handles)v = max(min(floor(str2double(get(hObject,'String'))),handles.n),1);set(hObject,'String',mat2str(v));%(str2double(get(handles.lastEig))-str2double(get(handles.firstEig,'String'))+1)if v ~= (str2double(get(handles.lastEig,'String'))-str2double(get(handles.firstEig,'String'))+1) set(handles.lastEig,'String',mat2str(v+str2double(get(handles.firstEig,'String'))-1));endguidata(hObject,handles);% --- Executes during object creation, after setting all properties.function numComponents_CreateFcn(hObject,eventdata,handles)if (ispc&&(isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')))) set(hObject,'BackgroundColor','white');end% --- Executes on button press in run.function run_Callback(hObject,eventdata,handles)p = {'off','on'};handles.params.stabilization = p{get(handles.stabilization,'Value')+1};handles.params.numComponents = str2double(get(handles.numComponents,'String'));if get(handles.rbsymmetric,'Value')==1 handles.params.approach = 'symm';else handles.params.approach = 'defl';endif get(handles.rb_g_pow3,'Value')==1 handles.params.g='pow3';elseif get(handles.rb_g_tanh,'Value')==1 handles.params.g='tanh';elseif get(handles.rb_g_gauss,'Value')==1 handles.params.g='gauss';else handles.params.g='skew';endhandles.params.firstEig=str2double(get(handles.firstEig,'String'));handles.params.lastEig=str2double(get(handles.lastEig,'String'));guidata(hObject,handles);uiresume(gcf);%function alpha_Callback(hObject,eventdata,handles)%%v = min(max(abs(str2double(get(hObject,'String'))),0),1);%set(hObject,'String',sprintf('%1.2f',v));%%guidata(hObject,handles);% --- Executes during object creation, after setting all properties.function alpha_CreateFcn(hObject,eventdata,handles)if (ispc&&(isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor')))) set(hObject,'BackgroundColor','white');end% --- Executes on button press in rbdeflation.function rbdeflation_Callback(hObject, eventdata, handles)% hObject handle to rbdeflation (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of rbdeflation% --- Executes on button press in rbsymmetric.function rbsymmetric_Callback(hObject, eventdata, handles)% hObject handle to rbsymmetric (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of rbsymmetric% --- Executes on button press in stabilization.function stabilization_Callback(hObject, eventdata, handles)% hObject handle to stabilization (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,'Value') returns toggle state of stabilizationfunction lastEig_Callback(hObject, eventdata, handles)% hObject handle to lastEig (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)s = size(handles.X);v = min(max(floor(str2double(get(hObject,'String'))),str2double(get(handles.firstEig,'String'))),s(end));set(hObject,'String',mat2str(v));if (v+1- str2double(get(handles.firstEig,'String'))) < str2double(get(handles.numComponents,'String')) set(handles.numComponents,'String',mat2str(v-str2double(get(handles.firstEig,'String'))));endguidata(hObject,handles);% Hints: get(hObject,'String') returns contents of lastEig as text% str2double(get(hObject,'String')) returns contents of lastEig as a double% --- Executes during object creation, after setting all properties.function lastEig_CreateFcn(hObject, eventdata, handles)% hObject handle to lastEig (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');endfunction firstEig_Callback(hObject, eventdata, handles)% hObject handle to firstEig (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)v = min(max(floor(str2double(get(hObject,'String'))),1),str2double(get(handles.lastEig,'String')));set(hObject,'String',mat2str(v));guidata(hObject,handles);% Hints: get(hObject,'String') returns contents of firstEig as text% str2double(get(hObject,'String')) returns contents of firstEig as a double% --- Executes during object creation, after setting all properties.function firstEig_CreateFcn(hObject, eventdata, handles)% hObject handle to firstEig (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -