MATLAB Function Reference |
Multidimensional data interpolation (table lookup)
Syntax
VI = interpn(X1,X2,X3,...,V,Y1,Y2,Y3,...) VI = interpn(V,Y1,Y2,Y3,...) VI = interpn(V,ntimes) VI = interpn(...,method)
Description
VI = interpn(X1,X2,X3,...,V,Y1,Y2,Y3,...)
interpolates to find VI
, the values of the underlying multidimensional function V
at the points in the arrays Y1
, Y2
, Y3
, etc. For an n-dimensional array V
, interpn
is called with 2*N+1
arguments. Arrays X1
, X2
, X3
, etc. specify the points at which the data V
is given. Out of range values are returned as NaN
s. Y1
, Y2
, Y3
, etc. must be arrays of the same size, or vectors. Vector arguments that are not the same size, and have mixed orientations (i.e. with both row and column vectors) are passed through ndgrid
to create the Y1
, Y2
, Y3
, etc. arrays. interpn
works for all n-dimensional arrays with 2 or more dimensions.
VI = interpn(V,Y1,Y2,Y3,...)
interpolates as above, assuming X1 = 1:size(V,1)
, X2 = 1:size(V,2)
, X3 = 1:size(V,3)
, etc.
VI = interpn(V,ntimes)
expands V
by interleaving interpolates between each element, working recursively for ntimes
iterations. interpn(V,1)
is the same as interpn(V)
.
VI = interpn(...,method)
specifies alternative methods:
'linear' |
Linear interpolation (default) |
'cubic' |
Cubic interpolation |
'spline' |
Cubic spline interpolation |
'nearest' |
Nearest neighbor interpolation |
VI = INTERPN(...,'method',extrapval)
specifies a method and a value for VI
outside of the domain created by X1
, X2
, ...
. Thus, VI
equals extrapval
for any value of Y1
, Y2
,... that is not spanned by X1
, X2
,... respectively. You must specify a method to use extrapval
. The default method is 'linear'
.
interpn
requires that X1
, X2
, X3
, ... be monotonic and plaid (as if they were created using ndgrid
). X1
, X2
, X3
, and so on can be non-uniformly spaced.
Discussion
All the interpolation methods require that X1
,X2
, X3
... be monotonic and have the same format ("plaid") as if they were created using ndgrid
. X1
,X2
,X3
,... and Y1
, Y2
, Y3
, etc. can be non-uniformly spaced. For faster interpolation when X1
, X2
, X3
, etc. are equally spaced and monotonic, use the methods '*linear
', '*cubic
', or '*nearest
'.
See Also
interp1
, interp2
, interp3
, ndgrid
interpft | interpstreamspeed |
© 1994-2005 The MathWorks, Inc.