Documentation

# fmesh

## Syntax

``fmesh(f)``
``fmesh(f,[min max])``
``````fmesh(f,[xmin xmax ymin ymax])``````
``fmesh(funx,funy,funz)``
``````fmesh(funx,funy,funz,[uvmin uvmax])``````
``````fmesh(funx,funy,funz,[umin umax vmin vmax])``````
``fmesh(___,LineSpec)``
``fmesh(___,Name,Value)``
``fmesh(ax,___)``
``obj = fmesh(___)``

## Description

example

````fmesh(f)` creates a mesh plot of the symbolic expression `f(x,y)` over the default interval `[-5 5]` for `x` and `y`.```
````fmesh(f,[min max])` plots `f(x,y)` over the interval `[min max]` for `x` and `y`.```

example

``````fmesh(f,[xmin xmax ymin ymax])``` plots `f(x,y)` over the interval `[xmin xmax]` for `x` and `[ymin ymax]` for `y`. The `fmesh` function uses `symvar` to order the variables and assign intervals.```

example

````fmesh(funx,funy,funz)` plots the parametric mesh `x = x(u,v)`, `y = y(u,v)`, ```z = z(u,v)``` over the interval `[-5 5]` for `u` and `v`.```
``````fmesh(funx,funy,funz,[uvmin uvmax])``` plots the parametric mesh ```x = x(u,v)```, `y = y(u,v)`, `z = z(u,v)` over the interval `[uvmin uvmax]` for `u` and `v`.```
``````fmesh(funx,funy,funz,[umin umax vmin vmax])``` plots the parametric mesh `x = x(u,v)`, ```y = y(u,v)```, `z = z(u,v)` over the interval `[umin umax]` for `u` and ```[vmin vmax]``` for `v`. The `fmesh` function uses `symvar` to order the parametric variables and assign intervals.```
````fmesh(___,LineSpec)` uses the `LineSpec` to set the line style, marker symbol, and plot color.```
````fmesh(___,Name,Value)` specifies surface properties using one or more `Name,Value` pair arguments. Use this option with any of the input argument combinations in the previous syntaxes.```
````fmesh(ax,___)` plots into the axes with the object `ax` instead of the current axes object `gca`.```
````obj = fmesh(___)` returns a function surface object or a parameterized function surface object. Use the object to query and modify properties of a specific mesh.```

## Examples

### Note

For additional examples, follow the `fsurf` page because `fmesh` and `fsurf` share the same syntax. All examples on the `fsurf` page apply to `fmesh`.

### 3-D Mesh Plot of Symbolic Expression

Plot a mesh of the input $\mathrm{sin}\left(x\right)+\mathrm{cos}\left(y\right)$ over the default range $-5 and $-5.

```syms x y fmesh(sin(x)+cos(y))``` ### 3-D Mesh Plot of Symbolic Function

Plot a 3-D mesh of the real part of ${tan}^{-1}\left(x+iy\right)$ over the default range $-5 and $-5.

```syms f(x,y) f(x,y) = real(atan(x + i*y)); fmesh(f)``` ### Specify Plotting Interval of Mesh Plot

Plot $\mathrm{sin}\left(x\right)+\mathrm{cos}\left(y\right)$ over $-\pi and $-5 by specifying the plotting interval as the second argument of `fmesh`.

```syms x y f = sin(x) + cos(y); fmesh(f, [-pi pi -5 5])``` ### Parameterized Mesh Plot

Plot the parameterized mesh

`$\begin{array}{c}x=r\mathrm{cos}\left(s\right)\mathrm{sin}\left(t\right)\\ y=r\mathrm{sin}\left(s\right)\mathrm{sin}\left(t\right)\\ z=r\mathrm{cos}\left(t\right)\\ where\phantom{\rule{1em}{0ex}}r=8+\mathrm{sin}\left(7s+5t\right)\end{array}$`

for $0 and $0. Make the aspect ratio of the axes equal using `axis equal`. See the entire mesh by making the mesh partially transparent using `alpha`.

```syms s t r = 8 + sin(7*s + 5*t); x = r*cos(s)*sin(t); y = r*sin(s)*sin(t); z = r*cos(t); fmesh(x, y, z, [0 2*pi 0 pi], 'Linewidth', 2) axis equal``` `alpha(0.8)`

### Note

For additional examples, follow the `fsurf` page because `fmesh` and `fsurf` share the same syntax. All examples on the `fsurf` page apply to `fmesh`.

## Input Arguments

collapse all

Expression or function to be plotted, specified as a symbolic expression or function.

Plotting interval for x- and y-axes, specified as a vector of two numbers. The default is `[-5 5]`.

Plotting interval for x- and y-axes, specified as a vector of four numbers. The default is `[-5 5 -5 5]`.

Parametric functions of `u` and `v`, specified as a symbolic expression or function.

Plotting interval for `u` and `v` axes, specified as a vector of two numbers. The default is ```[-5 5]```.

Plotting interval for `u` and `v`, specified as a vector of four numbers. The default is ```[-5 5 -5 5]```.

Axes object. If you do not specify an axes object, then `fmesh` uses the current axes.

Line style, marker symbol, and line color, specified as a character vector. The elements of the character vector can appear in any order, and you can omit one or more options from the character vector specifier.

Example: `'--or'` is a red mesh with circle markers

SpecifierLine Style
`-`Solid line (default)
`--`Dashed line
`:`Dotted line
`-.`Dash-dot line
SpecifierMarker
`o`Circle
`+`Plus sign
`*`Asterisk
`.`Point
`x`Cross
`s`Square
`d`Diamond
`^`Upward-pointing triangle
`v`Downward-pointing triangle
`>`Right-pointing triangle
`<`Left-pointing triangle
`p`Pentagram
`h`Hexagram
SpecifierColor

`y`

yellow

`m`

magenta

`c`

cyan

`r`

red

`g`

green

`b`

blue

`w`

white

`k`

black

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside quotes. You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Example: `'Marker','o','MarkerFaceColor','red'`

Number of evaluation points per direction, specified as a number. The default is `35`. Because `fmesh` objects use adaptive evaluation, the actual number of evaluation points is greater.

Example: `100`

Display contour plot under plot, specified as `'off'` (default) or `'on'`.

Line color, specified as `'interp'`, an RGB triplet, a hexadecimal color code, a color name, or a short name. The default value of `'interp'` colors the edges based on the `ZData` property values.

For a custom color, specify an RGB triplet or a hexadecimal color code.

• An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range `[0,1]`; for example, ```[0.4 0.6 0.7]```.

• A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (`#`) followed by three or six hexadecimal digits, which can range from `0` to `F`. The values are not case sensitive. Thus, the color codes `'#FF8800'`, `'#ff8800'`, `'#F80'`, and `'#f80'` are equivalent.

Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.

Color NameShort NameRGB TripletHexadecimal Color CodeAppearance
`'red'``'r'``[1 0 0]``'#FF0000'` `'green'``'g'``[0 1 0]``'#00FF00'` `'blue'``'b'``[0 0 1]``'#0000FF'` `'cyan'` `'c'``[0 1 1]``'#00FFFF'` `'magenta'``'m'``[1 0 1]``'#FF00FF'` `'yellow'``'y'``[1 1 0]``'#FFFF00'` `'black'``'k'``[0 0 0]``'#000000'` `'white'``'w'``[1 1 1]``'#FFFFFF'` `'none'`Not applicableNot applicableNot applicableNo color

Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB® uses in many types of plots.

RGB TripletHexadecimal Color CodeAppearance
`[0 0.4470 0.7410]``'#0072BD'` `[0.8500 0.3250 0.0980]``'#D95319'` `[0.9290 0.6940 0.1250]``'#EDB120'` `[0.4940 0.1840 0.5560]``'#7E2F8E'` `[0.4660 0.6740 0.1880]``'#77AC30'` `[0.3010 0.7450 0.9330]``'#4DBEEE'` `[0.6350 0.0780 0.1840]``'#A2142F'` Example: `'blue'`

Example: ```[0 0 1]```

Example: `'#0000FF'`

Line style, specified as one of the options listed in this table.

Line StyleDescriptionResulting Line
`'-'`Solid line `'--'`Dashed line `':'`Dotted line `'-.'`Dash-dotted line `'none'`No lineNo line

Line width, specified as a positive value in points, where 1 point = 1/72 of an inch. If the line has markers, then the line width also affects the marker edges.

Marker symbol, specified as one of the values in this table. By default, a line does not have markers. Add markers at selected points along the line by specifying a marker.

ValueDescription
`'o'`Circle
`'+'`Plus sign
`'*'`Asterisk
`'.'`Point
`'x'`Cross
`'square'` or `'s'`Square
`'diamond'` or `'d'`Diamond
`'^'`Upward-pointing triangle
`'v'`Downward-pointing triangle
`'>'`Right-pointing triangle
`'<'`Left-pointing triangle
`'pentagram'` or `'p'`Five-pointed star (pentagram)
`'hexagram'` or `'h'`Six-pointed star (hexagram)
`'none'`No markers

Marker outline color, specified as `'auto'`, an RGB triplet, a hexadecimal color code, a color name, or a short name. The default value of `'auto'` uses the same color as the `EdgeColor` property.

For a custom color, specify an RGB triplet or a hexadecimal color code.

• An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range `[0,1]`; for example, ```[0.4 0.6 0.7]```.

• A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (`#`) followed by three or six hexadecimal digits, which can range from `0` to `F`. The values are not case sensitive. Thus, the color codes `'#FF8800'`, `'#ff8800'`, `'#F80'`, and `'#f80'` are equivalent.

Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.

Color NameShort NameRGB TripletHexadecimal Color CodeAppearance
`'red'``'r'``[1 0 0]``'#FF0000'` `'green'``'g'``[0 1 0]``'#00FF00'` `'blue'``'b'``[0 0 1]``'#0000FF'` `'cyan'` `'c'``[0 1 1]``'#00FFFF'` `'magenta'``'m'``[1 0 1]``'#FF00FF'` `'yellow'``'y'``[1 1 0]``'#FFFF00'` `'black'``'k'``[0 0 0]``'#000000'` `'white'``'w'``[1 1 1]``'#FFFFFF'` `'none'`Not applicableNot applicableNot applicableNo color

Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.

RGB TripletHexadecimal Color CodeAppearance
`[0 0.4470 0.7410]``'#0072BD'` `[0.8500 0.3250 0.0980]``'#D95319'` `[0.9290 0.6940 0.1250]``'#EDB120'` `[0.4940 0.1840 0.5560]``'#7E2F8E'` `[0.4660 0.6740 0.1880]``'#77AC30'` `[0.3010 0.7450 0.9330]``'#4DBEEE'` `[0.6350 0.0780 0.1840]``'#A2142F'` Example: `[0.5 0.5 0.5]`

Example: `'blue'`

Example: `'#D2F9A7'`

Marker fill color, specified as `'auto'`, an RGB triplet, a hexadecimal color code, a color name, or a short name. The `'auto'` value uses the same color as the `MarkerEdgeColor` property.

For a custom color, specify an RGB triplet or a hexadecimal color code.

• An RGB triplet is a three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range `[0,1]`; for example, ```[0.4 0.6 0.7]```.

• A hexadecimal color code is a character vector or a string scalar that starts with a hash symbol (`#`) followed by three or six hexadecimal digits, which can range from `0` to `F`. The values are not case sensitive. Thus, the color codes `'#FF8800'`, `'#ff8800'`, `'#F80'`, and `'#f80'` are equivalent.

Alternatively, you can specify some common colors by name. This table lists the named color options, the equivalent RGB triplets, and hexadecimal color codes.

Color NameShort NameRGB TripletHexadecimal Color CodeAppearance
`'red'``'r'``[1 0 0]``'#FF0000'` `'green'``'g'``[0 1 0]``'#00FF00'` `'blue'``'b'``[0 0 1]``'#0000FF'` `'cyan'` `'c'``[0 1 1]``'#00FFFF'` `'magenta'``'m'``[1 0 1]``'#FF00FF'` `'yellow'``'y'``[1 1 0]``'#FFFF00'` `'black'``'k'``[0 0 0]``'#000000'` `'white'``'w'``[1 1 1]``'#FFFFFF'` `'none'`Not applicableNot applicableNot applicableNo color

Here are the RGB triplets and hexadecimal color codes for the default colors MATLAB uses in many types of plots.

RGB TripletHexadecimal Color CodeAppearance
`[0 0.4470 0.7410]``'#0072BD'` `[0.8500 0.3250 0.0980]``'#D95319'` `[0.9290 0.6940 0.1250]``'#EDB120'` `[0.4940 0.1840 0.5560]``'#7E2F8E'` `[0.4660 0.6740 0.1880]``'#77AC30'` `[0.3010 0.7450 0.9330]``'#4DBEEE'` `[0.6350 0.0780 0.1840]``'#A2142F'` Example: `[0.3 0.2 0.1]`

Example: `'green'`

Example: `'#D2F9A7'`

Marker size, specified as a positive value in points, where 1 point = 1/72 of an inch.

## Output Arguments

collapse all

One or more objects, returned as a scalar or a vector. The object is either a function surface object or parameterized mesh object, depending on the type of plot. You can use these objects to query and modify properties of a specific line. For details, see FunctionSurface Properties and ParameterizedFunctionSurface Properties.

## Algorithms

`fmesh` assigns the symbolic variables in `f` to the `x` axis, then the `y` axis, and `symvar` determines the order of the variables to be assigned. Therefore, variable and axis names might not correspond. To force `fmesh` to assign x or y to its corresponding axis, create the symbolic function to plot, then pass the symbolic function to `fmesh`.

For example, the following code plots the mesh of f(x,y) = sin(y) in two ways. The first way forces the waves to oscillate with respect to the y axis. The second way assigns y to the x axis because it is the first (and only) variable in the symbolic function.

```syms x y; f(x,y) = sin(y); figure; subplot(2,1,1) fmesh(f); subplot(2,1,2) fmesh(f(x,y)); % Or fmesh(sin(y)); ``` ### Topics

#### Mathematical Modeling with Symbolic Math Toolbox

Get examples and videos