scatteredInterpolant Scattered data interpolation
scatteredInterpolant performs interpolation on scattered data that
resides in 2-D or 3-D space. A scattered data set is defined by sample
points X and corresponding values v. A scatteredInterpolant object F
represents a surface of the form v = F(X). Interpolated values vq at
query points Xq are obtained by evaluating the interpolant, vq = F(Xq).
F = scatteredInterpolant creates an empty scattered data interpolant.
F = scatteredInterpolant(X,v) creates an interpolant that fits a
surface of the form v = F(X) to the sample data set (X,v). The sample
points X must have size NPTS-by-2 in 2-D or NPTS-by-3 in 3-D, where
NPTS is the number of points. Each row of X contains the coordinates of
one sample point. The values v must be a column vector of length NPTS.
F = scatteredInterpolant(x,y,v) and F = scatteredInterpolant(x,y,z,v)
also allow the sample point locations to be specified in alternative
column vector format when working in 2-D and 3-D.
F = scatteredInterpolant(...,METHOD) specifies the method used to
interpolate the data. METHOD must be one of the following:
'linear' - (default) Linear interpolation
'nearest' - Nearest neighbor interpolation
'natural' - Natural neighbor interpolation
The 'natural' method is C1 continuous except at the sample points. The
'linear' method is C0 continuous. The 'nearest' method is discontinuous.
F = scatteredInterpolant(...,METHOD,EXTRAPOLATIONMETHOD) also specifies
the extrapolation method used for query points outside the convex hull.
EXTRAPOLATIONMETHOD must be one of the following:
'linear' - (default if METHOD is 'linear' or 'natural')
Linear extrapolation based on boundary gradients
'nearest' - (default if METHOD is 'nearest') Evaluates to the value
of the nearest neighbor on the convex hull boundary
'none' - Queries outside the convex hull return NaN
Example:
% Construct a scatteredInterpolant F from locations x,y and values v
t = linspace(3/4*pi,2*pi,50)';
x = [3*cos(t); 2*cos(t); 0.7*cos(t)];
y = [3*sin(t); 2*sin(t); 0.7*sin(t)];
v = repelem([-0.5; 1.5; 2],length(t));
F = scatteredInterpolant(x,y,v)
% Evaluate F at query locations xq,yq to obtain interpolated values vq
tq = linspace(3/4*pi+0.2,2*pi-0.2,40)';
xq = [2.8*cos(tq); 1.7*cos(tq); cos(tq)];
yq = [2.8*sin(tq); 1.7*sin(tq); sin(tq)];
vq = F(xq,yq);
% Plot the sample data (x,y,v) and interpolated query data (xq,yq,vq)
plot3(x,y,v,'.',xq,yq,vq,'.'), grid on
title('Linear Interpolation')
xlabel('x'), ylabel('y'), zlabel('Values')
legend('sample data','interpolated query data','Location','best')
% Change the interpolation method from 'linear' to 'nearest'
F.Method = 'nearest'
% Perform nearest neighbor interpolation and plot the result
vq = F(xq,yq);
figure
plot3(x,y,v,'.',xq,yq,vq,'.'), grid on
title('Nearest Interpolation')
xlabel('x'), ylabel('y'), zlabel('Values')
legend('sample data','interpolated query data','Location','best')
scatteredInterpolant properties:
Points - Locations of the scattered sample points
Values - Values associated with each sample point
Method - Method used to interpolate at query points
ExtrapolationMethod - Extrapolation method used outside the convex hull
scatteredInterpolant methods:
vq = F(Xq) evaluates the scatteredInterpolant F at scattered query
points Xq and returns a column vector of interpolated values vq.
Each row of Xq contains the coordinates of one query point.
vq = F(xq,yq) and vq = F(xq,yq,zq) also allow the scattered query
points to be specified as column vectors of coordinates.
Vq = F(Xq,Yq) and Vq = F(Xq,Yq,Zq) evaluates F at gridded query
points specified in full grid format as 2-D and 3-D arrays created
from grid vectors using [Xq,Yq,Zq] = NDGRID(xqg,yqg,zqg).
Vq = F({xqg,yqg}) and Vq = F({xqg,yqg,zqg}) also allow a grid of
query points to be specified in compact form as grid vectors. Use
this syntax to conserve memory when the query points form a large
grid. Vq has the same size as the grid: LENGTH(xqg)-by-LENGTH(yqg)
or LENGTH(xqg)-by-LENGTH(yqg)-by-LENGTH(zqg).
See also griddedInterpolant, griddata, delaunayTriangulation
Documentation for scatteredInterpolant
doc scatteredInterpolant