plotframe1ez.m.html | ![]() |
Source file: plotframe1ez.m | |
Directory: /home/rjl/git/rjleveque/clawpack-4.x/matlab | |
Converted: Sun May 15 2011 at 19:15:58 using clawcode2html | |
This documentation file will not reflect any later changes in the source file. |
function [q,xc,h] = plotframe1ez(amrdata,mq,plotstyle,... uservariablefile,mapc2pfile) % PLOTFRAME1EZ for plotting simple 1d plots % % PLOTFRAME1EZ is a functional version of plotframe1 and can be used in % conjunction with other 2d and 3d plotting routines without overwriting % global variables from those routines. % % [Q,X] = PLOTFRAME1EZ(AMRDATA,MQ,PLOTSTYLE,USERVARIABLEFILE,MAPC2PFILE) % plots the data stored in AMRDATA, using the variables MQ,PLOTSTYLE, % USERVARIABLEFILE and MAPC2PFILE to specify the type of plot to show. % AMRDATA is created with the READAMRDATA command, and is a structure % containing grid information. See READAMRDATA. MQ is a scalar which % specifies which variable (i.e. column) of the amrdata.data matrix to % read. USERVARIABLEFILE is a string specifing any user defined function % which the data is passed through. It has the syntax : % % data = amrdata.data'; % q = feval(UserVariableFile,data); % % If USERVARIABLEFILE is the empty string ('') then q is set to data(:,mq). % % Finally, if the user has set mappedgrid = 1, then a function 'mapc2p' is % called to map the Cartesian data to physical data. MAPC2P should % be the name of a function on the Matlab path with the syntax % % xp = mapc2p(xc) % % NOTE : It is not assumed that this function has the name 'mapc2p', % because this would conflict with the mapc2p used for the 2d or 3d % routines. % % PLOTFRAME1EZ returns the 1d Q and X data. % % [Q,X] = PLOTFRAME1EZ(AMRDATA,MQ,PLOTSTYLE) uses default values % ('') for USERVARIABLEFILE and MAPC2PFILE. % % [Q,X] = PLOTFRAME1EZ(AMRDATA,MQ) sets PLOTSTYLE = 'b'; % % [Q,X] = PLOTFRAME1EZ(AMRDATA) sets MQ = 1. % % [Q,X,P] = PLOTFRAME1EZ(....) returns a handle P to the 1d line plot. % % Example : % % % To call this routine from an afterframe.m file % % ...... % hold on; % dir = './results1d/'; % dim = 1; % [amrdata1d,t1d] = readamrdata(dim,Frame,dir); % userfile = ''; % UserVariableFile % mapc2pfile = 'mapc2p1d'; % [q1d,x1d] = plotframe1ez(amrdata1d,mq,'b-',userfile,mapc2pfile); % hold off; % % See also SETPLOT, MappedGrid, READAMRDATA. if (length(amrdata) == 0) disp('*** plotframe1ez : ''amrdata'' is empty'); return; end; if (length(amrdata) > 1) disp('*** plotframe1ez : length(amrdata) > 1; plotframe1ez does not '); disp('*** support multiple grids'); return; end; if (nargin < 5) mapc2pfile = ''; if (nargin < 4) uservariablefile = ''; if (nargin < 3) plotstyle = 'r-'; if (nargin < 2) mq = 1; end; end; end; end; uservariable = ~isempty(uservariablefile); mappedgrid = ~isempty(mapc2pfile); gridno = amrdata(1).gridno; level = amrdata(1).level; mx = amrdata(1).mx; xlow = amrdata(1).xlow; dx = amrdata(1).dx; data = amrdata(1).data'; xc = xlow + ((1:mx) - 0.5)*dx; % for compatibility with old matlab41/plotframe1 convention: x = xc; if (uservariable == 1) % User has supplied a function to convert original q variables to % the variable which is to be plotted, e.g. Mach number, entropy. q = feval(uservariablefile,data); else q = data(:,mq); end; if mappedgrid % coordinate mapping must be applied xc = feval(mapc2pfile,xc); end [lstyle,lcolors,mstyle] = get_plotstyle({plotstyle},1); p = line('XData',xc,'YData',q,'LineStyle',lstyle{1},... 'Color',lcolors{1},'Marker',mstyle{1}); if (nargout == 3) % sent out plot handle. h = p; end;