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

📄 slider.m

📁 含有多种ICA算法的eeglab工具箱
💻 M
字号:
% slider() - add slider to a figure%% Usage:%   >>  slider( handler, horiz, vert, horizmag, vertmag);%% Inputs:%   handler  - figure handler (for the current figure, use gcf)%   horiz    - [0|1] add a horizontal slider%   vert     - [0|1] add a horizontal slider%   horizmag - magnify the width of the figure before adding the slider.%              Default is 1.%   vertmag  - magnify the height of the figure before adding the slider.%              Default is 1.%   allowsup - [0|1] allow suppression of slider by the 'x' button.%              Default is 1.% % Note:%   clicking on the 'x' the right corner restores the original setting   %% Example: figure; plot(1:10); slider(gcf, 1, 1, 2, 2);%% Author: Arnaud Delorme, CNL / Salk Institute, 2001%% See also: eeglab()%123456789012345678901234567890123456789012345678901234567890123456789012% Copyright (C) 2001 Arnaud Delorme, Salk Institute, arno@salk.edu%% This program is free software; you can redistribute it and/or modify% it under the terms of the GNU General Public License as published by% the Free Software Foundation; either version 2 of the License, or% (at your option) any later version.%% This program is distributed in the hope that it will be useful,% but WITHOUT ANY WARRANTY; without even the implied warranty of% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the% GNU General Public License for more details.%% You should have received a copy of the GNU General Public License% along with this program; if not, write to the Free Software% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA% $Log: slider.m,v $% Revision 1.1  2002/04/05 17:39:45  jorn% Initial revision%% 01-25-02 reformated help & license -ad % 03-19-02 make the width independent of the figure size -ad function slider( handler, horiz, vert, horizmag, vertmag, allowsup);if nargin < 2 	help slider;	return;end;if nargin < 3	vert = 0;end;if nargin < 4	horizmag = 1;end;if nargin < 5	vertmag = 1;end;if nargin < 6	allowsup = 1;end;pos   = get(gcf, 'position');width  = 5/pos(3)*400;height = 5/pos(4)*400;pos = get(gca,'position'); % plot relative to current axesq = [0.13 0.11 0 0];s = [0.0077 0.0081 0.0077 0.0081];if vert	h = uicontrol('Parent',handler, ... 	'style', 'slider', 'Units','Normalized', 'userdata', 1, 'value', 1, ...	'Position', [113-width -9 width 119].*s+q, 'tag', 'winslider', ...	'string','vertslider', 'callback', ...	['if isempty(gcbf), fig = gcf; else fig = gcbf; end;' ...	 'h = findobj(''parent'', fig);' ...	 'h2 = findobj(''parent'', fig, ''tag'', ''winslider'');' ...	 'h = setdiff( h, h2);' ...	 'curobj = findobj(''parent'', fig, ''string'', ''vertslider'');' ...	 'shift = get(curobj, ''userdata'') - get(curobj, ''value'');' ...	 'set( curobj, ''userdata'', get(curobj, ''value''));' ... 	 'for i = 1:length(h),' ...	 '   curpos = get( h(i), ''position'');' ...	 '   set( h(i), ''position'', [ curpos(1) curpos(2)+' num2str(vertmag-1) '*shift curpos(3:end)]);' ...	 'end;' ...	 'clear h2 h shift i curpos fig curobj;'] );end;if horiz	hz = uicontrol('Parent',handler, ... 	'style', 'slider', 'Units','Normalized', 'userdata', 1, 'value', 1, ...	'Position', [-17 -19+height 125 height].*s+q, 'tag', 'winslider', ...	'string','horizslider', 'callback', ...	['if isempty(gcbf), fig = gcf; else fig = gcbf; end;' ...	 'h = findobj(''parent'', fig);' ...	 'h2 = findobj(''parent'', fig, ''tag'', ''winslider'');' ...	 'h = setdiff( h, h2);' ...	 'curobj = findobj(''parent'', fig, ''string'', ''horizslider'');' ...	 'shift = get(curobj, ''userdata'') - get(curobj, ''value'');' ...	 'set( curobj, ''userdata'', get(curobj, ''value''));' ... 	 'for i = 1:length(h),' ...	 '   curpos = get( h(i), ''position'');' ...	 '   set( h(i), ''position'', [ curpos(1)+' num2str(horizmag-1) '*shift curpos(2:end)]);' ...	 'end;' ...	 'clear h2 h shift i curpos fig curobj;'] );end;% button to remove the slider% ---------------------------but = uicontrol( 'style', 'pushbutton', 'Units','Normalized', ...		   'string', 'x', 'position', [113-width -19+height width height].*s+q, 'tag', 'winslider', 'callback', ...		  ['hx = findobj(''parent'', gcbf, ''tag'', ''winslider'');' ... % put slider to their extremities		   'hx = setdiff(hx, gcbo);' ...		   'set(hx, ''value'', 1);' ...		   'eval(get(hx(1), ''callback''));' ...		   'if length(hx) >1, eval(get(hx(2), ''callback'')); end;' ...		   'h = findobj(''parent'', gcbf);' ... % recompute positions		   'for i = 1:length(h),' ...		   '   curpos = get( h(i), ''position'');' ...		   '   set( h(i), ''position'', [(curpos(1)+(' num2str(horizmag) '-1))/' num2str(horizmag) '  (curpos(2)+(' num2str(vertmag) '-1))/' num2str(vertmag) ' curpos(3)/' num2str(horizmag) ' curpos(4)/' num2str(vertmag) ']);' ...		   'end;' ...		   'clear h hx curpos;' ...		   'delete( findobj(''parent'', gcbf, ''tag'', ''winslider'') );' ]);if ~allowsup	set(but, 'enable', 'off');end;	% magnify object in the window% ----------------------------h = findobj('parent', handler);set( h, 'units', 'normalized');h2 = findobj('parent', handler, 'tag', 'winslider');h = setdiff( h, h2);for i = 1:length(h)	curpos = get( h(i), 'position');	set( h(i), 'position', [curpos(1)*horizmag-(horizmag-1)  curpos(2)*vertmag-(vertmag-1) curpos(3)*horizmag curpos(4)*vertmag]);end;if horiz	% set the horizontal axis to 0		% ----------------------------	set(hz, 'value', 0);	eval(get(hz, 'callback'));end;return;

⌨️ 快捷键说明

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