x=1200:400:4000;
y=1200:400:3600;
z=[1130 1250 1280 1230 1040 900 500 700
1320 1450 1420 1400 1300 700 900 850
1390 1500 1500 1400 900 1100 1060 950
1500 1200 1100 1550 1600 1550 1380 1070
1500 1550 1600 1550 1600 1600 1600 1550
1500 1200 1100 1350 1450 1200 1150 1010
1480 1500 1550 1510 1430 1300 1200 980
];
figure(1);
meshz(x,y,z)
xlabel('X'),ylabel('Y'),zlabel('Z'),title('原始图');
xi=0:50:5600;
yi=0:50:4800;
figure(2)
z1i=interp2(x,y,z,xi,yi','nearest');
surfc(xi,yi,z1i)
xlabel('X'),ylabel('Y'),zlabel('Z'),title('最临近插值图');
figure(3)
z2i=interp2(x,y,z,xi,yi','linear');
surfc(xi,yi,z2i)
xlabel('X'),ylabel('Y'),zlabel('Z'),title('默认差值:线性插值');
figure(4)
z3i=interp2(x,y,z,xi,yi','cubic');
surfc(xi,yi,z3i)
xlabel('X'),ylabel('Y'),zlabel('Z'),title('立方插值图');
figure(5)
subplot(1,3,1),contour(xi,yi,z1i,10,'r');,title('轮廓图');
subplot(1,3,2),contour(xi,yi,z2i,10,'r');,title('轮廓图');
subplot(1,3,3),contour(xi,yi,z3i,10,'r');,title('轮廓图');
fprintf('对比几种差值图可以发现,最临近差值图的图像不连续,\n线性差值图函数连续,一阶导不连续,\n立方差值图的函数图像平滑,更符合实际要求。')
% 零阶插值(函数不连续)、线性插值(函数连续但一阶导数不连续)、样条插值(一阶导数连续),用matlab来解很快的。一般说来后一方法比前一方法要平滑,更加符合实际。