fnval
Evaluate spline function
Description
provides the value f(x) at the points in v
= fnval(f
,x
)x
of the spline function f whose description is contained in f
.
If f
is scalar-valued and univariate, the output v
is obtained by replacing each entry of x
by the value of f at that entry. This is the intent in all other cases, except that, for a d
-valued m
-variate function, d
-vectors replaces m
-vectors.
For a univariate f :
If f is scalar-valued, then v is of the same size as
x
.If f is
[d1,...,dr]
-valued, andx
has size[n1,...,ns]
, thenv
has size[d1,...,dr, n1,...,ns]
, withv(:,...,:, j1,...,js)
the value of f atx(j1,...,js)
, – except that:n1
is ignored if it is1
ands
is2
, i.e., ifx
is a row vector;MATLAB® ignores any trailing singleton dimensions of
x
.
For an m
-variate f with m>1
, with f [d1,...,dr]
-valued, x
might be either an array, or else a cell array {x1,...,xm}
.
If
x
is an array, of size[n1,...,ns]
, thenn1
must equalm
, andv
has size[d1,...,dr, n2,...,ns]
, withv(:,...,:, j2,...,js)
the value of f atx(:,j2,...,js)
, – except that:d1
, ...,dr
is ignored in case f is scalar-valued, i.e., bothr
andn1
are1
;MATLAB ignores any trailing singleton dimensions of
x
.
If
x
is a cell array, then it must be of the form{x1,...,xm}
, withxj
a vector, of lengthnj
, and, in that case,v
has size[d1,...,dr, n1,...,nm]
, withv(:,...,:, j1,...,jm)
the value of f at (x1
(j1
), ...,xm
(jm
)), – except thatd1
, ...,dr
is ignored in case f is scalar-valued, i.e., bothr
andn1
are1
.
If f has a jump discontinuity at x
, then the value f(x +), i.e., the limit from the right, is returned, except when x
equals the right end of the basic interval of the form; for such x
, the value f(x–), i.e., the limit from the left, is returned.
fnval(...,'l')
treats f as continuous from the left. This means that if f has a jump discontinuity at x
, then the value f(x–), i.e., the limit from the left, is returned, except when x
equals the left end of the basic interval; for such x
, the value f(x +) is returned.
If the function is multivariate, then the above statements concerning continuity from the left and right apply coordinate wise.
Examples
Input Arguments
Output Arguments
Algorithms
For each entry of x
, the function determines the relevant break-interval or knot-interval and assembles the relevant information. Depending on whether f
is in ppform or in B-form, nested multiplication or the B-spline recurrence (see, e.g., [PGS; X.(3)]) are then used vector-fashion for the simultaneous evaluation at all entries of x
. Evaluation of a multivariate polynomial spline function takes full advantage of the tensor product structure.
Evaluation of a rational spline follows up evaluation of the corresponding vector-valued spline by division of all but its last component by its last component.
Evaluation of a function in stform makes essential use of stcol
, and tries to keep the matrices involved to reasonable size.
Version History
Introduced in R2006b