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, andxhas size[n1,...,ns], thenvhas size[d1,...,dr, n1,...,ns], withv(:,...,:, j1,...,js)the value of f atx(j1,...,js), – except that:n1is ignored if it is1andsis2, i.e., ifxis 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
xis an array, of size[n1,...,ns], thenn1must equalm, andvhas size[d1,...,dr, n2,...,ns], withv(:,...,:, j2,...,js)the value of f atx(:,j2,...,js), – except that:d1, ...,dris ignored in case f is scalar-valued, i.e., bothrandn1are1;MATLAB ignores any trailing singleton dimensions of
x.
If
xis a cell array, then it must be of the form{x1,...,xm}, withxja vector, of lengthnj, and, in that case,vhas size[d1,...,dr, n1,...,nm], withv(:,...,:, j1,...,jm)the value of f at (x1(j1), ...,xm(jm)), – except thatd1, ...,dris ignored in case f is scalar-valued, i.e., bothrandn1are1.
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

