GET_Y_FX
About the function
The function looks up in an xy-relation, defined as argument to the function, with values from a time series that also is an argument to the function. The result is the y-value from the xy-relation, possibly interpolated. See also information about how to handle input values outside the provided range.
Syntax
- GET_Y_FX (t,D,D[,s])
Description
# | Type | ## Description |
---|---|---|
1 | t | Series containing x-values used to lookup in the xy-relation to find the result value for current point of time. |
2 | D | X-values, sorted increasingly. |
3 | D | Y-values corresponding to the X-values given in the last argument. |
4 | s | Can have the following values: INTERPOL - means that the y-value is interpolated, default is no interpolation NOHOLD - means that if you have a NaN on the X-series, the last calculated Y-value is not used. In default mode last calculated value is used. You may combine these two methods and separate them by using a comma. |
GET_Y_FX (t,D,D,[s]) corresponds to y=f(x)
Example
Example 1: GET_Y_FX (t,D,D,[s])
R1 = @GET_Y_FX(%'/X series',{-1,20,40}, {1,2,3} )
R2 = @GET_Y_FX(%'/X series',{-1,20,40}, {1,2,3}, 'INTERPOL')
R3 = @GET_Y_FX(%'/X series',{-1,20,40}, {1,2,3}, 'INTERPOL,NOHOLD' )
This gives the following values for an X-series presented in the first column.
The function is best explained by an illustration:
You state a curve band, iso curves in the form of an array of time series. These are associated with an array of y-values. In the above illustration the y-values are -1, 20 and 40, and time series 1 is associated with value -1, time series 2 with 20 and time series 3 with 40. The thickest black curve represents values on the input data series. In the points where this crosses the iso curves, a new result value is generated, as the blue curve shows.
Handle input values outside the provided range
When an input is lower than the first value from the x range provided in the function call (-1 in the example below) the first value from the y range will be returned (1 in the example below).
When an input is higher than the last value from the x range provided in the function call (40 in the example below) the last value from the y range will be returned (3 in the example below).
Example
##=@GET_Y_FX(@t('t'), {-1,20,40}, {1,2,3}, 'INTERPOL,NOHOLD')
input | output |
---|---|
-10 | 1 |
2 | 1.142 |
10 | 1.523 |
NaN | NaN |
30 | 2.5 |
NaN | NaN |
50 | 3 |