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

See Also

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 DataLab