1、首先,我们选择一个区域,选择某些地点测量其相对于某水平面高度的数据,下面我们要做的是用这些数据尽量准确地绘制出该地区的地形地貌图。数据如下:
2、下面我们通过Matlab对这些测量数据进行数据插值,并绘制出图形地貌。显然应该采用二维插值,在此采用效果更好的三次样条插值。在进行代码的编写前,我们先介绍一下Matlab二维插值函数interp2()的用法。见下图:
3、最后,通过Matlab进行三次样条插值,并绘制出地形地貌图,代码如下:clear clc;%构造测量网格[x,y] = meshgrid(1:10);data = [0,0.02,-0.12,0,-2.09,0,-0.58,-0.08,0,0;... 0.02,0,0,-2.38,0,-4.96,0,0,0,-0.1;... 0,0.1,1.00,0,-3.04,0,-0.53,0,0.10,0;... 0,0,0,3.52,0,0,0,0,0,0;... -0.43,-1.98,0,0,0,0.77,0,2.17,0,0;... 0,0,-2.29,0,0.69,0,2.59,0,0.30,0;... -0.09,-0.31,0,0,0,4.27,0,0,0,-0.01;... 0,0,0,5.13,7.40,0,1.89,0,0.04,0;... 0.1,0,0.58,0,0,1.75,0,-0.11,0,0;... 0,-0.01,0,0,0.3,0,0,0,0,0.01];%构造插值网格[xi,yi] = meshgrid(1:0.1:10);%二维插值命令datai = interp2(x,y,data,xi,yi,'spine');%绘出地貌图surf(datai);%标记坐标名称xlabel('x')ylabel('y')zlabel('data')
4、程序的运行结果如下图: