Learn R Programming

pracma (version 1.7.9)

interp1: One-dimensional Interpolation

Description

One-dimensional interpolation of points.

Usage

interp1(x, y, xi = x,
        method = c("constant", "linear", "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".

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: ll{ constant constant between points linear linear interpolation (default) 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")

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

## 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")

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)

Run the code above in your browser using DataLab