interp2

Purpose

2-D data interpolation (table lookup).

Synopsis

ZI = interp2(X,Y,Z,XI,YI)
ZI = interp2(X,Y,Z,XI,YI,'method')

Description

interp2 interpolates between data points. It finds values of a two-dimensional function underlying the data at intermediate points.

ZI = interp2(X,Y,Z,XI,YI) returns matrix ZI containing elements corresponding to the elements of XI and YI and determined by interpolation within the two-dimensional function specified by matrices X, Y, and Z. Matrix Z contains the values of a two-dimensional function at the corresponding abscissae contained in matrices X and Y.

X can be a row vector, in which case the elements are assumed to apply to the columns of Z. Similarly, Y can be a column vector and its elements are assumed to apply across the rows of Z.

Interpolation is the same operation as table lookup. Described in table lookup terms, the table is tab = [NaN,Y; X,Z] and interp2 looks up the elements of XI in X, YI in Y, and, based upon their location, returns values ZI interpolated within the elements of Z.

ZI = interp2(X,Y,Z,XI,YI,'method') specifies alternative interpolation methods, where method can be:

'linear' for linear interpolation (default)

'cubic' for cubic interpolation

All interpolation methods require that X and Y be monotonic. The 'cubic' method also requires that X and Y contain uniformly spaced points.

Examples

Interpolate the peaks function over a finer grid:

[X,Y] = meshgrid(-3:.25:3);
Z = peaks(X,Y);
[XI,YI] = meshgrid(-3:.125:3);
ZI = interp2(X,Y,Z,XI,YI);
mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15)
hold off
axis([-3 3 -3 3 -5 20])
          

If Poptable is the 6-by-4 table:

Poptable =
       0.     10.000     20.000     30.000
    1950.    150.697    199.592    187.625
    1960.    179.323    195.072    250.287
    1970.    203.212    179.092    322.767
    1980.    226.505    153.706    426.730
    1990.    249.633    120.281    598.243
Then the statements

years = Poptable(2:6,1);
values = Poptable(1,2:4);
T = poptable(2:6,2:4)
extract a years vector (the first column of the table), a values vector (the first row of the table), and a matrix T containing all the population data in the table (everything except the first row and the first column).

Now the statement

p = interp2(values,years,T,15,1975)
returns

p =
    190.629
This is the average of the four table values

    203.212    179.092 
    226.505    153.706

See Also

griddata, interp1, interpft

(c) Copyright 1994 by The MathWorks, Inc.