Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Create surface object

`surface(Z) `

surface(Z,C)

surface(X,Y,Z)

surface(X,Y,Z,C)

surface(x,y,Z)

surface(...'* PropertyName*',PropertyValue,...)

surface(ax,...)

h = surface(...)

For a list of properties, see Surface Properties.

`surface`

is the low-level function for creating
surface graphics objects. Surfaces are plots of matrix data created
using the row and column indices of each element as the *x*-
and *y*-coordinates and the value of each element
as the *z*-coordinate.

`surface(Z) `

plots the
surface specified by the matrix `Z`

. Here, `Z`

is
a single-valued function, defined over a geometrically rectangular
grid. The values in `Z`

can be numeric, datetime,
duration, or categorical values.

`surface(Z,C) `

plots the
surface specified by `Z`

and colors it according
to the data in `C`

(see "Examples").

`surface(X,Y,Z) `

uses `C`

`=`

`Z`

,
so color is proportional to surface height above the *x*-*y* plane.

`surface(X,Y,Z,C) `

plots
the parametric surface specified by `X`

, `Y`

,
and `Z`

, with color specified by `C`

.
The values in `X`

, `Y`

, and `Z`

can
be numeric, datetime, duration, or categorical values.

`surface(x,y,Z)`

, `surface(x,y,Z,C)`

replaces
the first two matrix arguments with vectors and must have ```
length(x)
= n
```

and `length(y) = m`

where ```
[m,n]
= size(Z)
```

. In this case, the vertices of the surface facets
are the triples `(x(j),y(i),Z(i,j))`

. Note that `x`

corresponds
to the columns of `Z`

and `y`

corresponds
to the rows of `Z`

. For a complete discussion of
parametric surfaces, see the `surf`

function.
The values in `x`

, `y`

, and `Z`

can
be numeric, datetime, duration, or categorical values.

`surface(...'`

follows the * PropertyName*',PropertyValue,...)

`X`

, `Y`

, `Z`

,
and `C`

arguments with property name/property value
pairs to specify additional surface properties. For a description
of the properties, see Surface Properties.`surface(ax,...)`

creates the surface in
the axes specified by `ax`

instead of in the current
axes (`gca`

). The option `ax`

can
precede any of the input argument combinations in the previous syntaxes.

`h = surface(...) `

returns
a primitive surface object.

For examples, see Representing Data as a Surface.

`surface`

does not respect the settings of the figure and axes `NextPlot`

properties. It
simply adds the surface object to the current axes.

If you do not specify separate color data (`C`

), MATLAB^{®} uses
the matrix (`Z`

) to determine the coloring of the
surface. In this case, color is proportional to values of `Z`

.
You can specify a separate matrix to color the surface independently
of the data defining the area of the surface.

You can specify properties as property name/property value pairs or using dot notation.

`surface`

provides convenience forms that allow
you to omit the property name for the `XData`

, `YData`

, `ZData`

,
and `CData`

properties. For example,

surface('XData',X,'YData',Y,'ZData',Z,'CData',C)

is equivalent to

surface(X,Y,Z,C)

When you specify only a single matrix input argument,

surface(Z)

MATLAB assigns the data properties as if you specified

surface('XData',[1:size(Z,2)],... 'YData',[1:size(Z,1)],... 'ZData',Z,... 'CData',Z)

The `axis`

, `caxis`

, `colormap`

, `hold`

, `shading`

,
and `view`

commands set graphics
properties that affect surfaces. You can also set and query surface
property values after creating them using dot notation.

Was this topic helpful?