Main Content

Interpolate 2-D or 3-D scattered data

Use `scatteredInterpolant`

to perform interpolation on a 2-D
or 3-D data set of scattered data.
`scatteredInterpolant`

returns the interpolant
`F`

for the given data set. You can evaluate `F`

at a
set of query points, such as `(xq,yq)`

in 2-D, to produce interpolated
values `vq = F(xq,yq)`

.

Use `griddedInterpolant`

to perform interpolation
with gridded data.

creates an
empty scattered data interpolant object.`F`

= scatteredInterpolant

specifies an interpolation method: `F`

= scatteredInterpolant(___,`Method`

)`'nearest'`

,
`'linear'`

, or `'natural'`

. Specify
`Method`

as the last input argument in any of the first
three syntaxes.

specifies both the interpolation and extrapolation methods. Pass
`F`

= scatteredInterpolant(___,`Method`

,`ExtrapolationMethod`

)`Method`

and `ExtrapolationMethod`

together as the last two input arguments in any of the first three
syntaxes.

`Method`

can be:`'nearest'`

,`'linear'`

, or`'natural'`

.`ExtrapolationMethod`

can be:`'nearest'`

,`'linear'`

, or`'none'`

.

Use `scatteredInterpolant`

to create the interpolant,
`F`

. Then you can evaluate `F`

at specific points
using any of the following syntaxes:

`Vq = F(Pq)`

Vq = F(Xq,Yq)

Vq = F(Xq,Yq,Zq)

Vq = F({xq,yq})

Vq = F({xq,yq,zq})

`Vq = F(Pq)`

specifies the query points in the matrix`Pq`

. Each row in`Pq`

contains the coordinates of a query point.`Vq = F(Xq,Yq)`

and`Vq = F(Xq,Yq,Zq)`

specify the query points as two or three matrices of equal size.`Vq = F({xq,yq})`

and`Vq = F({xq,yq,zq})`

specify the query points as grid vectors. Use this syntax to conserve memory when you want to query a large grid of points.

It is quicker to evaluate a

`scatteredInterpolant`

object`F`

at many different sets of query points than it is to compute the interpolations separately using the functions`griddata`

or`griddatan`

. For example:% Fast to create interpolant F and evaluate multiple times F = scatteredInterpolant(X,Y,V) v1 = F(Xq1,Yq1) v2 = F(Xq2,Yq2) % Slower to compute interpolations separately using griddata v1 = griddata(X,Y,V,Xq1,Yq1) v2 = griddata(X,Y,V,Xq2,Yq2)

To change the interpolation sample values or interpolation method, it is more efficient to update the properties of the interpolant object

`F`

than it is to create a new`scatteredInterpolant`

object. When you update`Values`

or`Method`

, the underlying Delaunay triangulation of the input data does not change, so you can compute new results quickly.Scattered data interpolation with

`scatteredInterpolant`

uses a Delaunay triangulation of the data, so can be sensitive to scaling issues in the sample points`x`

,`y`

,`z`

, or`P`

. When this occurs, you can use`normalize`

to rescale the data and improve the results. See Normalize Data with Differing Magnitudes for more information.

`scatteredInterpolant`

uses a Delaunay triangulation of the scattered
sample points to perform interpolation [1].

[1] Amidror, Isaac. “Scattered data interpolation methods
for electronic imaging systems: a survey.” *Journal of Electronic
Imaging*. Vol. 11, No. 2, April 2002, pp. 157–176.

`griddata`

| `griddatan`

| `griddedInterpolant`

| `meshgrid`

| `ndgrid`