function varargout = sliderdiff(varargin) % SLIDERDIFF Application M-file for sliderdiff.fig % FIG = SLIDERDIFF launch sliderdiff GUI. % SLIDERDIFF('callback_name', ...) invoke the named callback. % Last Modified by GUIDE v2.0 07-Oct-2001 19:37:49 if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); % Generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig); guidata(fig, handles); set(handles.slider1,'Value',0); set(handles.slider2,'Value',0); set(handles.slider3,'Value',0); set(handles.slider4,'Value',0); set(handles.slider5,'Value',0); set(handles.slider6,'Value',0); set(handles.slider7,'Value',0); set(handles.slider8,'Value',0); set(handles.slider9,'Value',0); set(handles.slider10,'Value',0); set(handles.slider11,'Value',0); set(handles.slider12,'Value',0); set(handles.slider13,'Value',0); alpha = get(handles.DiffCoeffSlider,'Value'); set(handles.DiffCoeffSliderValue,'String',sprintf('%5.3f',alpha)); if nargout > 0 varargout{1} = fig; end elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try if (nargout) [varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard else feval(varargin{:}); % FEVAL switchyard end catch disp(lasterr); end end %| ABOUT CALLBACKS: %| GUIDE automatically appends subfunction prototypes to this file, and %| sets objects' callback properties to call them through the FEVAL %| switchyard above. This comment describes that mechanism. %| %| Each callback subfunction declaration has the following form: %| (H, EVENTDATA, HANDLES, VARARGIN) %| %| The subfunction name is composed using the object's Tag and the %| callback type separated by '_', e.g. 'slider2_Callback', %| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'. %| %| H is the callback object's handle (obtained using GCBO). %| %| EVENTDATA is empty, but reserved for future use. %| %| HANDLES is a structure containing handles of components in GUI using %| tags as fieldnames, e.g. handles.figure1, handles.slider2. This %| structure is created at GUI startup using GUIHANDLES and stored in %| the figure's application data using GUIDATA. A copy of the structure %| is passed to each callback. You can store additional information in %| this structure at GUI startup, and you can change the structure %| during callbacks. Call guidata(h, handles) after changing your %| copy to replace the stored original so that subsequent callbacks see %| the updates. Type "help guihandles" and "help guidata" for more %| information. %| %| VARARGIN contains any extra arguments you have passed to the %| callback. Specify the extra arguments by editing the callback %| property in the inspector. By default, GUIDE sets the property to: %| ('', gcbo, [], guidata(gcbo)) %| Add any extra arguments after the last argument, before the final %| closing parenthesis. % -------------------------------------------------------------------- function varargout = slider1_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider2_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider3_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider4_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider5_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider6_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider7_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider8_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider9_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider10_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider11_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider12_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = slider13_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = GoButton_Callback(h, eventdata, handles, varargin) N = str2double(get(handles.NumItersSliderValue,'String')); u(1) = get(handles.slider1,'Value'); u(2) = get(handles.slider2,'Value'); u(3) = get(handles.slider3,'Value'); u(4) = get(handles.slider4,'Value'); u(5) = get(handles.slider5,'Value'); u(6) = get(handles.slider6,'Value'); u(7) = get(handles.slider7,'Value'); u(8) = get(handles.slider8,'Value'); u(9) = get(handles.slider9,'Value'); u(10) = get(handles.slider10,'Value'); u(11) = get(handles.slider11,'Value'); u(12) = get(handles.slider12,'Value'); u(13) = get(handles.slider13,'Value'); alpha = get(handles.DiffCoeffSlider,'Value'); for k = 1:N, um = [u(1) u(1:12)]; up = [u(2:13) u(13)]; u = u - alpha*(u-um) + alpha*(up-u); set(handles.slider1,'Value',u(1)); set(handles.slider2,'Value',u(2)); set(handles.slider3,'Value',u(3)); set(handles.slider4,'Value',u(4)); set(handles.slider5,'Value',u(5)); set(handles.slider6,'Value',u(6)); set(handles.slider7,'Value',u(7)); set(handles.slider8,'Value',u(8)); set(handles.slider9,'Value',u(9)); set(handles.slider10,'Value',u(10)); set(handles.slider11,'Value',u(11)); set(handles.slider12,'Value',u(12)); set(handles.slider13,'Value',u(13)); set(handles.CurrentIter,'String',num2str(k)); if (k < N) pause(0.05) end end set(handles.CurrentIter,'String','Done') % -------------------------------------------------------------------- function varargout = ZeroAllButton_Callback(h, eventdata, handles, varargin) set(handles.slider1,'Value',0); set(handles.slider2,'Value',0); set(handles.slider3,'Value',0); set(handles.slider4,'Value',0); set(handles.slider5,'Value',0); set(handles.slider6,'Value',0); set(handles.slider7,'Value',0); set(handles.slider8,'Value',0); set(handles.slider9,'Value',0); set(handles.slider10,'Value',0); set(handles.slider11,'Value',0); set(handles.slider12,'Value',0); set(handles.slider13,'Value',0); % -------------------------------------------------------------------- function varargout = NumItersSlider_Callback(h, eventdata, handles, varargin) N = round(get(h,'Value')); set(handles.NumItersSliderValue,'String',num2str(N)); % -------------------------------------------------------------------- function varargout = RandomButton_Callback(h, eventdata, handles, varargin) set(handles.slider1,'Value',rand); set(handles.slider2,'Value',rand); set(handles.slider3,'Value',rand); set(handles.slider4,'Value',rand); set(handles.slider5,'Value',rand); set(handles.slider6,'Value',rand); set(handles.slider7,'Value',rand); set(handles.slider8,'Value',rand); set(handles.slider9,'Value',rand); set(handles.slider10,'Value',rand); set(handles.slider11,'Value',rand); set(handles.slider12,'Value',rand); set(handles.slider13,'Value',rand); % -------------------------------------------------------------------- function varargout = DiffCoeffSlider_Callback(h, eventdata, handles, varargin) alpha = get(h,'Value'); set(handles.DiffCoeffSliderValue,'String',sprintf('%5.3f',alpha));