Interp2 does NOT apply to scattered data. You chose the wrong interpolation tool. You MAY be able to use
help scatteredInterpolant
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
Since I don't see youe actual data, I cannot be sure of what you are doing. However, I should point out that an interpolant does not necessarily maintain any statistical properties of your data.