📄 field2d.m
字号:
function varargout = field2d(varargin)% FIELD2D Application M-file for field2d.fig% FIG = FIELD2D launch field2d GUI.% FIELD2D('callback_name', ...) invoke the named callback.% Last Modified by GUIDE v2.0 11-Jun-2003 16:40:27if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); % Use system color scheme for figure: set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); % Generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig); guidata(fig, handles); set(fig,'WindowStyle','modal'); if nargout > 0 varargout{1} = fig; endelseif 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); endend%| 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:%| <SUBFUNCTION_NAME>(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:%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))%| Add any extra arguments after the last argument, before the final%| closing parenthesis.% --------------------------------------------------------------------function varargout = edit1_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = edit2_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)global win_to_draw;global DS;global vfield;global P;figure(win_to_draw);set(win_to_draw,'WindowStyle','modal');fig_axes = findobj(win_to_draw,'type','axes');% Axes sizexsize = get(fig_axes,'Xlim');ysize = get(fig_axes,'Ylim');% Grid parametersnx = str2num(get(handles.edit1,'String'));ny = str2num(get(handles.edit2,'String'));if ( ~isempty(nx) ) & ( ~isempty(ny) )% Check variables ss = get(win_to_draw,'UserData'); nbrvar = [0 0]; neq=length(DS(1).vars); for i=1:neq if strcmp(ss.Xexpression,DS(1).vars{i})==1 nbrvar(1) = i; end; if strcmp(ss.Yexpression,DS(1).vars{i})==1 nbrvar(2) = i; end; end;% Define grid hx =( xsize(2) - xsize(1) ) / (nx-1); hy =( ysize(2) - ysize(1) ) / (ny-1); [Xgrd,Ygrd] = meshgrid(xsize(1):hx:xsize(2),ysize(1):hy:ysize(2)); DX=Xgrd; DY=Ygrd; ns = size(DX);% RHS calcullation X=DS(1).Xinit; t=DS(1).time_start; for i=1:ns(1) for j=1:ns(2) X(nbrvar(1)) = Xgrd(i,j); X(nbrvar(2)) = Ygrd(i,j); Y=oderhs(t,X,P); DX(i,j) = Y(nbrvar(1)); DY(i,j) = Y(nbrvar(2)); end; end;% Vector field vfield = quiver(Xgrd,Ygrd,DX,DY);else errordlg('Check grid parameters, please!','Error values of grid!');end;set(win_to_draw,'WindowStyle','modal');set(win_to_draw,'WindowStyle','normal');% --------------------------------------------------------------------function varargout = pushbutton2_Callback(h, eventdata, handles, varargin)global vfield;ff=uisetcolor([0.5 0.5 0.5],'Define color of vector field');set(vfield,'Color',ff);% --------------------------------------------------------------------function varargout = pushbutton3_Callback(h, eventdata, handles, varargin)% Close field windowsglobal win_to_draw;delete(gcf);figure(win_to_draw);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -