The INTERPOL function performs linear interpolation on vectors with a regular or irregular grid. The result is a single- or double-precision floating-point vector, or a complex vector if the input vector is complex.

This routine is written in the IDL language. Its source code can be found in the file in the lib subdirectory of the IDL distribution.

Calling Sequence

; For regular grids: Result = INTERPOL( V, N );

; For irregular grids: Result = INTERPOL( V, X, U );



An input vector of any type except string.


The number of points in the result when both input and output grids are regular. The abscissa values for the output grid will contain the same endpoints as the input.


The abscissa values for V , in the irregularly-gridded case. X must have the same number of elements as V , and the values must be monotonically ascending or descending.


The abscissa values for the result. The result will have the same number of elements as U . U does not need to be monotonic.


Create a floating-point vector of 61 elements in the range [-3, 3].

X = FINDGEN(61)/10 - 3

V = SIN(X) ; Evaluate V[x] at each point .

U = [-2.50, -2.25, -1.85, -1.55, -1.20, -0.85, -0.50, -0.10, $

   0.30, 0.40, 0.75, 0.85, 1.05, 1.45, 1.85, 2.00, 2.25, 2.75 ]
; Define X-values where interpolates are desired.

result = INTERPOL(V, X, U) ; Interpolate.

PLOT, X, V ; Plot the function.

OPLOT, U, result ; Plot the interpolated values.

See Also