# interp1

One dimensional interpolation.

## Syntax

yi = interp1(x,y,xi)

yi = interp1(x,y,xi,method)

yi = interp1(x,y,xi,extrap)

yi = interp1(x,y,xi,method,extrap)

pp = interp1(x,y,...,'pp')

## Inputs

`x,y`- The known points with which to interpolate.
`xi`- The domain points at which to interpolate.
`method`- The available options are:
- 'linear' (default)
- Returns the linear interpolation.
- 'pchip'
- Returns shape preserving piece-wise cubic Hermite interpolation.
- 'spline'
- Returns the cubic spline interpolation.

`extrap`- The available options are:
- extrapVal (default: NaN)
- Out of bounds values are set to this scalar value.
- 'extrap'
- Allows extrapolation beyond the interval using the current method.
- 'noextrap'
- Does not allow extrapolation.

## Outputs

- yi
- The interpolated y values corresponding to
`xi`. - pp
- A piecewise polynomial struct.

## Examples

With 'linear' method and no extrapolation needed:

```
x = [1,2,3,4,5];
y = [1,4,9,16,25];
xi = [1.5,2.5,3.5,4.5];
yi = interp1(x,y,xi,'linear')
```

```
yi = [Matrix] 1 x 4
2.50000 6.50000 12.50000 20.50000
```

With 'linear' method and extrapolation:

```
x = [1,2,3,4,5];
y = [1,4,9,16,25];
xi = [0.5,1.5,2.5,3.5,4.5,5.5];
yi = interp1(x,y,xi,'linear','extrap')
```

```
yi = [Matrix] 1 x 6
-0.50000 2.50000 6.50000 12.50000 20.50000 29.50000
```

With 'spline' method and no extrapolation needed:

```
x = [1,2,3,4,5];
y = [1,4,9,16,25];
xi = [1.5,2.5,3.5,4.5];
yi = interp1(x,y,xi,'spline')
```

```
yi = [Matrix] 1 x 4
2.25000 6.25000 12.25000 20.25000
```

## Comments

When `y` is a matrix, the function operates along the first dimension,
which is the column dimension in the 2D case. This convention is the opposite of
spline.

For the 'linear' method, duplicate `x` values are allowed
if the vector is sorted, indicating a discontinuous function. The function is treated as
right-continuous if `x` is in ascending order, and left-continuous if
descending. More than two identical `x` values are not allowed.

For methods other than 'linear', `x` values must be
unique.

The 'spline' method uses the not-a-knot cubic spline.