实验内容
在某山区测得一些地点的高程如下表。平面区域为:
1200<=x<=4000,1200<=y<=3600
试作出该山区的地貌图和等高线图,并对对最近邻点插值、双线性插值方法和双三次插值方法等几种方法的插值效果进行比较。表格如下
实验设计原理
利用表中所给出的离散数据画出图像,利用邻点插值、双线性插值方法和双三次插值方法等几种方法,生成较为平滑的地貌图和等高线。
程序代码(含注释语句)
>>Z=zeros(7,8);%生成7行8列零矩阵
>>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('三次插值等高线图');
结果展示
文章来源:https://www.toymoban.com/news/detail-503205.html
文章来源地址https://www.toymoban.com/news/detail-503205.html
到了这里,关于插值法绘制山区地貌图和等高线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!