MATLAB Function Reference |
Syntax
surf(Z) surf(X,Y,Z) surf(X,Y,Z,C) surf(...,'PropertyName',PropertyValue) surf(axes_handle,...) surfc(...) h = surf(...) h = surfc(...) hsurface = surf('v6',...), hsurface = surfc('v6',...)
Description
Use surf
and surfc
to view mathematical functions over a rectangular region. surf
and surfc
create colored parametric surfaces specified by X
, Y
, and Z
, with color specified by Z
or C
.
surf(Z)
creates a a three-dimensional shaded surface from the z components in matrix Z
, using x
=
1:n
and y
=
1:m
, where [m,n] = size(Z)
. The height, Z
, is a single-valued function defined over a geometrically rectangular grid. Z
specifies the color data as well as surface height, so color is proportional to surface height.
surf(X,Y,Z)
creates a shaded surface using Z
for the color data as well as surface height. X
and Y
are vectors or matrices defining the x
and y
components of a surface. If X
and Y
are vectors, length(X)
=
n
and length(Y)
=
m
, where [m,n]
=
size(Z)
. In this case, the vertices of the surface faces are triples.
surf(X,Y,Z,C)
creates a shaded surface, with color defined by C
. MATLAB performs a linear transformation on this data to obtain colors from the current colormap.
surf(...,'PropertyName',PropertyValue)
specifies surface properties along with the data.
surf(axes_handles,...) and surfc(axes_handles,...)
plots into the axes with handle axes_handle
instead of the current axes (gca
).
surfc(...)
draws a contour plot beneath the surface.
h = surf(...) and h = surfc(...)
return a handle to a surfaceplot graphics object.
Backward Compatible Version
hsurface = surf('v6',...) and hsurface = surfc('v6',...)
returns the handles of surface objects instead of surfaceplot objects for compatibility with MATLAB 6.5 and earlier.
Abstractly, a parametric surface is parametrized by two independent variables, i
and j
, which vary continuously over a rectangle; for example, 1
i
m
and 1
j
n
. The three functions x(i,j)
, y(i,j)
, and z(i,j)
specify the surface. When i
and j
are integer values, they define a rectangular grid with integer grid points. The functions x(i,j)
, y(i,j)
, and z(i,j)
become three m
-by-n
matrices, X
, Y
, and Z
. Surface color is a fourth function, c(i,j)
, denoted by matrix C
.
Each point in the rectangular grid can be thought of as connected to its four nearest neighbors.
This underlying rectangular grid induces four-sided patches on the surface. To express this another way, [X(:)
Y(:)
Z(:)]
returns a list of triples specifying points in 3-space. Each interior point is connected to the four neighbors inherited from the matrix indexing. Points on the edge of the surface have three neighbors; the four points at the corners of the grid have only two neighbors. This defines a mesh of quadrilaterals or a quad-mesh.
Surface color can be specified in two different ways: at the vertices or at the centers of each patch. In this general setting, the surface need not be a single-valued function of x
and y
. Moreover, the four-sided surface patches need not be planar. For example, you can have surfaces defined in polar, cylindrical, and spherical coordinate systems.
The shading
function sets the shading. If the shading is interp
, C
must be the same size as X
, Y
, and Z
; it specifies the colors at the vertices. The color within a surface patch is a bilinear function of the local coordinates. If the shading is faceted
(the default) or flat
, C(i,j)
specifies the constant color in the surface patch:
In this case, C
can be the same size as X
, Y
, and Z
and its last row and column are ignored. Alternatively, its row and column dimensions can be one less than those of X
, Y
, and Z
.
The surf
and surfc
functions specify the viewpoint using view(3)
.
The range of X
, Y
, and Z
or the current setting of the axes XLimMode
, YLimMode
, and ZLimMode
properties (also set by the axis
function) determines the axis labels.
The range of C
or the current setting of the axes CLim
and ClimMode
properties (also set by the caxis
function) determines the color scaling. The scaled color values are used as indices into the current colormap.
Examples
Display a surfaceplot and contour plot of the peaks
surface.
Color a sphere with the pattern of +1s and -1s in a Hadamard matrix.
k = 5; n = 2^k-1; [x,
y,
z] =sphere
(n); c =hadamard
(2^k); surf(x,
y,
z,
c); colormap([1 1 0; 0 1 1]) axis equal
See Also
axis
, caxis
, colormap
, contour
, delaunay
, mesh
, pcolor
, shading
, trisurf
, view
Properties for surfaceplot graphics objects
Creating Surfaces and Meshes for related functions
Representing a Matrix as a Surface for more examples
Coloring Mesh and Surface Plots for information about how to control the coloring of surfaces
support | surf2patch |
© 1994-2005 The MathWorks, Inc.