pracma (version 1.9.9)

# interp1: One-dimensional Interpolation

## Description

One-dimensional interpolation of points.

## Usage

`interp1(x, y, xi = x, method = c("linear", "constant", "nearest", "spline", "cubic"))`

## Arguments

x
Numeric vector; points on the x-axis; at least two points require; will be sorted if necessary.
y
Numeric vector; values of the assumed underlying function; `x` and `y` must be of the same length.
xi
Numeric vector; points at which to compute the interpolation; all points must lie between `min(x)` and `max(x)`.
method
One of ``constant", ``linear", ``nearest", ``spline", or ``cubic"; default is ``linear"

## Value

Numeric vector representing values at points `xi`.

## Details

Interpolation to find `yi`, the values of the underlying function at the points in the vector `xi`.

Methods can be:

 `linear` linear interpolation (default) `constant` constant between points `nearest` nearest neighbor interpolation `spline` cubic spline interpolation `cubic` cubic Hermite interpolation

`approx`, `spline`

## Examples

Run this code
```x <- c(0.8, 0.3, 0.1, 0.6, 0.9, 0.5, 0.2, 0.0, 0.7, 1.0, 0.4)
y <- x^2
xi <- seq(0, 1, len = 81)
yl <- interp1(x, y, xi, method = "linear")
yn <- interp1(x, y, xi, method = "nearest")
ys <- interp1(x, y, xi, method = "spline")

## Not run:
# plot(x, y); grid()
# lines(xi, yl, col="blue", lwd = 2)
# lines(xi, yn, col="black", lty = 2)
# lines(xi, ys, col="red")
#   ## End(Not run)

## Difference between spline (Matlab) and spline (R).
x <- 1:6
y <- c(16, 18, 21, 17, 15, 12)
xs <- linspace(1, 6, 51)
ys <- interp1(x, y, xs, method = "spline")
sp <- spline(x, y, n = 51, method = "fmm")

## Not run:
# plot(x, y, main = "Matlab and R splines")
# grid()
# lines(xs, ys, col = "red")
# lines(sp\$x, sp\$y, col = "blue")
# legend(4, 20, c("Matlab spline", "R spline"),
#               col = c("red", "blue"), lty = 1)
#   ## End(Not run)
```

Run the code above in your browser using DataCamp Workspace