Tuesday, August 4, 2009

ezcontourf

Easy to use filled contour plotter

Syntax

  • ezcontourf(f)
    
    ezcontourf(f,domain)
    ezcontourf(...,n)

Description

ezcontourf(f) plots the contour lines of f(x,y), where f is a string that represents a mathematical function of two variables, such as x and y.

The function f is plotted over the default domain: -2 < x < src="http://www.physiol.ox.ac.uk/Computing/Online_Documentation/Matlab/techdoc/ref/pi.gif" align="bottom">, -2 < y < src="http://www.physiol.ox.ac.uk/Computing/Online_Documentation/Matlab/techdoc/ref/pi.gif" align="bottom">. MATLAB chooses the computational grid according to the amount of variation that occurs; if the function f is not defined (singular) for points on the grid, then these points are not plotted.

ezcontourf(f,domain) plots f(x,y) over the specified domain. domain can be either a 4-by-1 vector [xmin, xmax, ymin, ymax] or a 2-by-1 vector [min, max] (where, min <>

If f is a function of the variables u and v (rather than x and y), then the domain endpoints umin, umax, vmin, and vmax are sorted alphabetically. Thus, ezcontourf('u^2 - v^3',[0,1],[3,6]) plots the contour lines for u2 - v3 over 0 < u <>v <>

ezcontourf(...,n) plots f over the default domain using an n-by-n grid. The default value for n is 60.

ezcontourf automatically adds a title and axis labels.

Remarks

Array multiplication, division, and exponentiation are always implied in the expression you pass to ezcontourf. For example, the MATLAB syntax for a filled contour plot of the expression,

  • sqrt(x.^2 + y.^2);
    

is written as:

  • ezcontourf('sqrt(x^2 + y^2)')
    

That is, x^2 is interpreted as x.^2 in the string you pass to ezcontourf.

Examples

The following mathematical expression defines a function of two variables, x and y.

ezcontourf requires a string argument that expresses this function using MATLAB syntax to represent exponents, natural logs, etc. This function is represented by the string:

  • f = ['3*(1-x)^2*exp(-(x^2)-(y+1)^2)',...
    
    '- 10*(x/5 - x^3 - y^5)*exp(-x^2-y^2)',...
    '- 1/3*exp(-(x+1)^2 - y^2)'];

For convenience, this string is written on three lines and concatenated into one string using square brackets.

Pass the string variable f to ezcontourf along with a domain ranging from -3 to 3 and specify a grid of 49-by-49:

  • ezcontourf(f,[-3,3],49)
    



In this particular case, the title is too long to fit at the top of the graph so MATLAB abbreviates the string.

No comments:

Post a Comment