function varargout = linear(varargin) % LINEAR Application M-file for linear.fig % FIG = LINEAR launch linear GUI. % LINEAR('callback_name', ...) invoke the named callback. % Last Modified by GUIDE v2.0 21-Feb-2003 23:19:30 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); 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 = popupmenu1_Callback(h, eventdata, handles, varargin) load x; val = get(h,'Value'); switch val case 1 handles.data = 0; case 2 handles.data = rand(1000,1); case 3 handles.data = x; end guidata(h,handles) % -------------------------------------------------------------------- function varargout = edit1_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = edit2_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = edit3_Callback(h, eventdata, handles, varargin) % -------------------------------------------------------------------- function varargout = pushbutton1_Callback(h, eventdata, handles, varargin) % Get user input from GUI x = handles.data; L = str2double(get(handles.edit1,'String')); d = str2double(get(handles.edit2,'String')); u = str2double(get(handles.edit3,'String')); % Calculate data w = zeros(L,1); x1 = zeros(L,1); e(1:d-1)= x(1:d-1); for n = d+1:size(x), x1 =[x(n-d);x1(1:L-1)] ; y(n) = (w)'*x1; e(n) = x(n) - y(n); c = x1.^2; c1= sum(c); w = w + (u/(1+c1))*x1*e(n); end % Create input plot axes(handles.axes1) plot(x) set(handles.axes1,'XMinorTick','on') grid on % Create estimate plot axes(handles.axes2) plot(y) set(handles.axes2,'XMinorTick','on') grid on % Create tap weight plot axes(handles.axes3) stem(w) set(handles.axes3,'XMinorTick','on') grid on % Create error plot axes(handles.axes4) plot(e) set(handles.axes4,'XMinorTick','on') grid on