# Does anybody have details about how Matlab does its 2-D 'spline' interpolation?

2 views (last 30 days)
Jonas on 18 Jul 2012
I didn't find details about how Matlab computes its 'spline' interpolation in interp2. Apparently, it uses many points (Roughly a square of 60 points are needed to obtain exactly the same interpolation as for the whole plan when I tried for an example implying a huge matrix of random numbers (see example below) (and it's probably only a precision limit)). (I understood that 'linear' uses 4 points, 'cubic' 16) Does anyone know how Matlab procedes (I don't think they give any reference or anything about their method...)
MATLAB CODE
X=ones(1000*2,1)*(1:500);
Y=((((1-round(1000/2)):1000+...
(1000-round(1000/2))))')*ones(1,500);
Z=rand(2000,500);
rt=59.5
Hum3=interp2(X,Y,Z,rt,rt,'spline')
for kj=1:floor(rt-1)
if isequal(interp2(X((500+floor(rt)-kj):(500+ceil(rt)+kj),(floor(rt)-kj):(floor(rt)+kj)),...
Y((500+floor(rt)-kj):(500+ceil(rt)+kj),(floor(rt)-kj):(floor(rt)+kj)),...
Z((500+floor(rt)-kj):(500+ceil(rt)+kj),(floor(rt)-kj):(floor(rt)+kj)),rt,rt,'spline'),Hum3)
disp(kj)
break
end
end
Miro on 19 Jul 2012
the problem is, that the following can easily happen: http://imgur.com/e5hPj
Jonas on 19 Jul 2012
Yes, you are right, thank you. Apparently the 'cubic' option is less prone to this unwanted distortions... (I am doing some tests..)