# `XMesh`, `XSubmesh`, `YMesh`, `YSubmesh`, `ZMesh`

Number of sample points

MuPAD® notebooks will be removed in a future release. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.

## Value Summary

 `XMesh`, `XSubmesh`, `YMesh`, `YSubmesh`, `ZMesh` Inherited Positive integer

## Graphics Primitives

ObjectsDefault Values
`plot::Function2d`

`XMesh`: `121`

`XSubmesh`: `0`

`plot::Function3d`

`XMesh`, `YMesh`: `25`

`XSubmesh`, `YSubmesh`: `0`

`plot::Implicit2d`, `plot::Raster`, `plot::VectorField2d`

`XMesh`, `YMesh`: `11`

`plot::Implicit3d`

`XMesh`, `YMesh`, `ZMesh`: `11`

`plot::VectorField3d`

`XMesh`, `YMesh`, `ZMesh`: `7`

`plot::Conformal`

`XMesh`, `YMesh`: `11`

`XSubmesh`, `YSubmesh`: `0`

`plot::Inequality`

`XMesh`, `YMesh`: `256`

`plot::Density`

`XMesh`, `YMesh`: `25`

`plot::Matrixplot`

`XSubmesh`, `YSubmesh`: `2`

`plot::Listplot`

`XSubmesh`: `6`

## Description

The attributes `XMesh` etc. determine the number of sample points used for the numerical approximation of plot objects such as function graphs, implicit plots etc.

Various object types use numerical function evaluations on a discrete equidistant mesh. `XMesh`, `YMesh`, and for `plot::Implicit3d` also `ZMesh` set the number of points of this mesh. An exception of this are parameterized curves and surfaces, which use the attributes `UMesh`, `USubmesh`, `VMesh`, and `VSubmesh`.

For most of the object types listed above, the interpretation of the integers set by these attributes is as follows: In each of `XRange`, `YRange`, `ZRange`, the corresponding number of points is spread out equidistantly. For ```XMesh = 2``` and `XRange = 0..1`, for example, evaluation takes place for x = 0 and x = 1. For `XMesh = 3`, a further mesh point at is used.

The exception to this rule is `plot::Implicit2d`: Here, the values of `XMesh` and `YMesh` determine the density of the grid usd for finding components and increasing their values helps exactly in those cases where components (i.e., lines) are missing from the plot. Decreasing `XMesh` and `YMesh` in a 2D implicit plot will not make the curves appear rougher; it may result in curves missing.

For types reacting to `AdaptiveMesh` and for `plot::Implicit3d`, this mesh is used to find initial values that can be refined further. See the documentation of the specific types and of `AdaptiveMesh` for details.

In general, a finer mesh (higher values) leads to a longer computation, while a coarser mesh may cause details being missed.

One may specify `XMesh` = `nx`, `YMesh` = `ny`, `XSubmesh` = `mx`, `YSubmesh` = `mv` also in the shorter Form `Mesh` = ```[nx, ny]```, `Submesh` = ```[mx, my]```.

## Examples

### Example 1

The notorious function oscillates wildly near the origin. The standard mesh values do not suffice to resolve the behavior of the function near the critical point:

`plot(plot::Function2d(sin(1/x), x = -1 .. 1))` We get a better result with an increased value of `XMesh`:

`plot(plot::Function2d(sin(1/x), x = -1 .. 1), XMesh = 1000)` ### Example 2

In the following plot, the default values of `XMesh`, `YMesh` do not suffice to produce a sufficiently smooth function graph:

```plot(plot::Function3d(besselJ(0, sqrt(x^2 + y^2)), x = -20 .. 20, y = -20 .. 20)):``` Increasing the default values `XSubmesh = 0`, ```YSubmesh = 0``` yields a higher resolution plot. Note that this does not influence the number of mesh lines that are displayed:

```plot(plot::Function3d(besselJ(0, sqrt(x^2 + y^2)), x = -20 .. 20, y = -20 .. 20, XSubmesh = 2, YSubmesh = 2)):``` Alternatively, we increase the values of `XMesh`, `YMesh` and use the default values `XSubmesh = 0`, ```YSubmesh = 0```. This, however, increases the number of mesh lines that are displayed:

```plot(plot::Function3d(besselJ(0, sqrt(x^2 + y^2)), x = -20 .. 20, y = -20 .. 20, XMesh = 73, YMesh = 73)):``` Yet another possibility is to use the default values of `XMesh`, `YMesh`, `XSubmesh`, `YSubmesh` and activate the adaptive mechanism to smoothen the critical regions of the plot. However, this plot consists almost completely of critical regions and the adaptive mechanism will therefore be slower than a direct calculation with a finer mesh that leads to almost the same result:

```plot(plot::Function3d(besselJ(0, sqrt(x^2 + y^2)), x = -20 .. 20, y = -20 .. 20, AdaptiveMesh = 2)):``` ### Example 3

For two-dimensional implicit plots, `XMesh` and `YMesh` determine the mesh of “seed points” that are used to find components (see the documentation of `plot::Implicit2d` for more details). In effect, this means that if some components are missing from a plot, the values of these attributes should be increased:

`plot(plot::Implicit2d(sin(2*x*y), x = -3..3, y = -3..3))` ```plot(plot::Implicit2d(sin(2*x*y), x = -3..3, y = -3..3, XMesh = 20, YMesh = 20))``` #### Mathematical Modeling with Symbolic Math Toolbox

Get examples and videos