MATLAB: Am I using extrap wrong

extrapextrapolationinterp1linearquadraticspline

I'm trying to get extrap in linear, cubic, and spline methods. I have:
x = linspace(0, 4*pi) y = sin(x) c = 'yrbgk' ax = [0, 14, -2, 2]
axis(ax)
l = length(x)
o = l ./ 5
t = (2.*l)./5
th = (3.*l)./5
f = (4.*l)./5
fi = (5.*l)./5
cc = c(1)
cd = c(2)
ce = c(3)
cf = c(4)
cg = c(5)
omg = x(1:o)
zomg = x(1:t)
golly = x(1:th)
gee = x(1:f)
goshers = x(1:fi)
% all five pieces of data and colors
%first extrap
subplot(3,1,1)
yout = interp1(x, y, omg, 'linear', 'extrap')
youtu = interp1(x, y, zomg, 'linear', 'extrap')
youtub = interp1(x, y, golly, 'linear', 'extrap')
youtube = interp1(x, y, gee, 'linear', 'extrap')
plot(goshers,y,cg,gee,youtube,cf,golly,youtub,ce,zomg,youtu,cd,omg,yout,cc)
xlabel('x values')
ylabel('y values')
title('Interp1: Linear') My answer is supposed to look like this:
but mine looks like the black function with the color changing by range of x value. From 0 to 2 it is yellow, from 2 to 4 it is red, 4 to 6 is blue, 6 to 8 is green and 8 to 10 is black

Best Answer

That’s how extrapolation works. The extrapolation routines do their best to guess what your data are doing a few samples beyond what is known. The more data you give them, the more accurate the extrapolation is.
As a general rule, don’t extrapolate more than a few points beyond the region of fit, and then only to make a particular vector or array fit a particular size requirement. In reality, you have no idea what your data are doing outside what you’ve measured, so every extrapolation method is — at least in theory — a good as any other.