You are here : matlab → Signal Processing → pchip
# pchip() - Signal Processing

### Syntax

### Example

### Output / Return Value

### Limitations

### Alternatives / See Also

### Reference

yi = pchip(x,y,xi) returns vector yi containing elements corresponding to the elements of xi and determined by piecewise cubic interpolation within vectors x and y. The vector x specifies the points at which the data y is given, so x and y must have the same length. If y is a matrix or array, then the values in the last dimension, y(:,...,:,j), are taken as the values to match with x. In that case, the last dimension of y must be the same length as x. If y has n dimensions, then output yi is of size [size(y,1) size(y,2) ... size(y,n-1) length(xi)]. For example, if y is a matrix, then yi is of size [size(y,1) length(xi)].pp = pchip(x,y) returns a piecewise polynomial structure for use by ppval. x can be a row or column vector. y is a row or column vector of the same length as x, or a matrix with length(x) columns. pchip finds values of an underlying interpolating function P(x) at intermediate points, such that: On each subinterval xk≤x≤xk+1, is the cubic Hermite interpolant to the given values and certain slopes at the two endpoints.P(x) interpolates y, i.e., P(xj)=yj, and the first derivative dPdx is continuous. The second derivative d2Pdx2 is probably not continuous; there may be jumps at the xj.The slopes at the xj are chosen in such a way that preserves the shape of the data and respects monotonicity. This means that, on intervals where the data are monotonic, so is ; at points where the data has a local extremum, so does .Note If y is a matrix, satisfies the above for each column of y.

yi = pchip(x,y,xi)pp = pchip(x,y)

Data Interpolation Using spline and pchipOpen This Example x = -3:3; y = [-1 -1 -1 0 1 1 1]; t = -3:.01:3; p = pchip(x,y,t); s = spline(x,y,t); plot(x,y,'o',t,p,'-',t,s,'-.') legend('data','pchip','spline','Location','SouthEast')