Return the cubic spline interpolant of points x and y.
When called with two arguments, return the piecewise polynomial pp
that may be used with ppval to evaluate the polynomial at specific
points.
When called with a third input argument, spline evaluates the spline
at the points xi.  The third calling form
spline (x, y, xi) is equivalent to
ppval (spline (x, y), xi).
The variable x must be a vector of length n.
y can be either a vector or array.  If y is a vector it must
have a length of either n or n + 2.  If the length of
y is n, then the "not-a-knot" end condition is used.
If the length of y is n + 2, then the first and last
values of the vector y are the values of the first derivative of the
cubic spline at the endpoints.
If y is an array, then the size of y must have the form
[s1, s2, …, sk, n]
or
[s1, s2, …, sk, n + 2].
The array is reshaped internally to a matrix where the leading
dimension is given by
s1 * s2 * … * sk
and each row of this matrix is then treated separately.  Note that this is
exactly the opposite of interp1 but is done for MATLAB
compatibility.
See also: pchip, ppval, mkpp, unmkpp.
The following code
 x = 0:10; y = sin (x);
 xspline = 0:0.1:10;  yspline = spline (x,y,xspline);
 title ("spline fit to points from sin (x)");
 plot (xspline,sin(xspline),"r", xspline,yspline,"g-", x,y,"b+");
 legend ("original", "interpolation", "interpolation points");
 %--------------------------------------------------------
 % confirm that interpolated function matches the original
Produces the following figure
| Figure 1 | 
|---|
![]()  | 
Package: octave