插值法绘制山区地貌图和等高线

实验内容

在某山区测得一些地点的高程如下表。平面区域为:
1200<=x<=4000,1200<=y<=3600
试作出该山区的地貌图和等高线图,并对对最近邻点插值、双线性插值方法和双三次插值方法等几种方法的插值效果进行比较。表格如下
插值法绘制山区地貌图和等高线_第1张图片

实验设计原理

利用表中所给出的离散数据画出图像,利用邻点插值、双线性插值方法和双三次插值方法等几种方法,生成较为平滑的地貌图和等高线。

程序代码(含注释语句)

>>Z=zeros(7,8);%生成78列零矩阵
>>Z(1,:)=[1130 1250 1280 1230 1040 900  500  700 ];
>>Z(2,:)=[1320 1450 1420 1400 1300 700  900  850 ];
>>Z(3,:)=[1390 1500 1500 1400 900  1100 1060 950 ];
>>Z(4,:)=[1500 1200 1100 1550 1600 1550 1380 1070];
>>Z(5,:)=[1500 1200 1100 1550 1600 1550 1380 1070];
>>Z(6,:)=[1500 1550 1600 1550 1600 1600 1600 1550];
>>Z(7,:)=[1480 1500 1550 1510 1430 1300 1200 980 ];%Z矩阵中填入相应数值
>>X=1200:400:4000;%画出原始数据图像
>>Y=1200:400:3600;
>> [X,Y]=meshgrid(X,Y);
>>surf(X,Y,Z);
>>xlabel('X坐标');%装饰坐标轴
>>ylabel('Y坐标');
>>zlabel('高度');
>>grid on;
>>title('原始数据图像');
>>colorbar;%显示色彩条
>>X1=1200:10:4000;%生成插值点
>>Y1=1200:10:3600;
>>Z1=interp2(X,Y,Z,X1',Y1,'nearest');%邻点差值得出一系列数据Z1
>>[X1,Y1]=meshgrid(X1,Y1);
>>mesh(X1,Y1,Z1);
>>xlabel('X坐标');
>>ylabel('Y坐标');
>>zlabel('高度');
>>grid on;
>>title('邻点插值山区地貌图');
>>colorbar; 
>>[M,c]=contour(X1,Y1,Z1);%画出等高线
>>c.Fill='on';%将等高线填充颜色
>>c.LineColor='b';
>>c.ShowText='on';
>>colorbar;
>>title('邻点插值等高线图');
Z2=interp2(X,Y,Z,X1',Y1,'liner');%线性插值
mesh(X1,Y1,Z2);
xlabel('X坐标');
ylabel('Y坐标');
zlabel('高度');
grid on;
title('线性插值山区地貌图');
colorbar; 
[M,c]=contour(X1,Y1,Z2);%线性插值等高线
c.Fill='on';
c.LineColor='b';
c.ShowText='on';
colorbar;
title('线性插值等高线图');
>>Z3=interp2(X,Y,Z,X1',Y1,'cubic');%三次插值
>>mesh(X1,Y1,Z3);
>>xlabel('X坐标');
>>ylabel('Y坐标');
>>zlabel('高度');
>>grid on;
>>title('三次插值山区地貌图');
>>colorbar;
[M,c]=contour(X1,Y1,Z3);
c.Fill='on';
c.LineColor='b';
c.ShowText='on';
colorbar;
title('三次插值等高线图');

结果展示

插值法绘制山区地貌图和等高线_第2张图片

插值法绘制山区地貌图和等高线_第3张图片
插值法绘制山区地貌图和等高线_第4张图片
插值法绘制山区地貌图和等高线_第5张图片
插值法绘制山区地貌图和等高线_第6张图片
插值法绘制山区地貌图和等高线_第7张图片
插值法绘制山区地貌图和等高线_第8张图片

你可能感兴趣的:(matlab程序,matlab)