interp(V;N;X;Y;E)
Returns a particular interpolation of a given value based on a discrete set of data points, and if specified, extrapolates out-of-range values.
Syntax
interp(V;N;X;Y;E)
Input
Argument | Type | Description |
---|---|---|
V |
integer or decimal | V is a column containing the values you wish to interpolate.A column name |
N |
integer | Determines the type of interpolation to performN must be
one of the following:
|
X |
integer or decimal | X is any type of value or a list of numbers in a set you wish to
interpolate.
A space- or comma-separated list of scalar values |
Y |
integer or decimal | Y is a list of numbers in a set you wish to interpolate.A space- or comma-separated list of scalar values |
E |
integer | A value of 1 or 0 that determines
whether or not to extrapolate out-of-range values
Note: Extrapolation of higher-order splines is not typically meaningful.
|
X
and Y
must be space- or comma-separated lists of
equal length.Return Value
Returns a decimal number corresponding to the interpolation of V
using the
method specified by N
and the values specified by X
and
Y
.
If E
=1, out-of-range values will be extrapolated.
If E
is 0 and V
is less than the
lowest value in X
or greater than the highest value in X
,
the result is N/A.
If V
is N/A, the result is N/A.
Example
<table>
op to create a temporary table to
help illustrate the use of
interp(V;N;X;Y;E)
:<table title="interp Example" cols="values" types="f">
2.5;
6;
8;
-2.5;
-100;
</table>
We'll use the values
column from this table for our V
parameter.
For X
, we'll use the following list of values:
0,1,2,3,4,5,6 (note that this can be a space- or comma-separated
list).
For Y
, we'll use the following list of values:
0,0.8415,0.9093,0.1411,-0.7568,-0.9589,-0.2794 (note that this can
be a space- or comma-separated list).
interp(V;N;X;Y;E)
to
interpolate the values in V
based on the values in X
and
Y
. We specify the type of interpolation using the N
parameter and whether or not to extrapolate out-of-range values using the E
parameter:<willbe name="simple" value="interp(values;0;0 1 2 3 4 5 6;0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794;0)"/>
<willbe name="simple_ex" value="interp(values;0;0 1 2 3 4 5 6;0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794;1)"/>
<willbe name="linear" value="interp(values;1;0,1,2,3,4,5,6;0,0.8415,0.9093,0.1411,-0.7568,-0.9589,-0.2794;0)"/>
<willbe name="linear_ex" value="interp(values;1;0,1,2,3,4,5,6;0,0.8415,0.9093,0.1411,-0.7568,-0.9589,-0.2794;1)"/>
<willbe name="quadratic" value="interp(values;2;0,1,2,3,4,5,6;0,0.8415,0.9093,0.1411,-0.7568,-0.9589,-0.2794;0)"/>
<willbe name="quadratic_ex" value="interp(values;2;0,1,2,3,4,5,6;0,0.8415,0.9093,0.1411,-0.7568,-0.9589,-0.2794;1)"/>
<willbe name="cubic" value="interp(values;3;0,1,2,3,4,5,6;0,0.8415,0.9093,0.1411,-0.7568,-0.9589,-0.2794;0)"/>
<willbe name="cubic_ex" value="interp(values;3;0,1,2,3,4,5,6;0,0.8415,0.9093,0.1411,-0.7568,-0.9589,-0.2794;1)"/>
This will give us the following results:
For those rows in the values
column that are in the range of
X
(i.e., 2.5 and 6), the
interpolated results are returned and are the same regardless of whether extrapolation has
been specified or not.
For those values outside the range of X
, the result is N/A in the
simple
, linear
, quadratic
, and
cubic
columns, since the E
parameter is
0 for those columns. For the simple_ex
,
linear_ex
, quadratic_ex
, and cubic_ex
columns, extrapolation is done since the E
parameter is
1.