• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

利用已知数据拟合三维图以及等高线matlab数学建模

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Description


 

  给定所有三维的离散坐标(xi, yi, zi)的数据集,如国赛2011年A题附件1 [1] ,请绘制出三维图

 

思路


 

  因为给定的是离散点求解三维地势图,如果只用 plot3() 的话只能得到三维曲线,并不能拟合成曲面图,所以需要先插值再曲面拟合。

  对于插值方面,interp2() 只能处理网格型数据。所以对于离散点数据,我选择的插值方法是 griddata(x, y, z, XI, YI),其中XI,YI是期望的插值位置,与[XI, YI] = meshgrid(XI, YI) 效果相同。

  griddata 的语法为 [...] = griddata(..., method),method指定的是插值使用的算法,其值可以是以下几种类型:(1)nearest:线性最近项插值  (2)linear:线性插值(默认)  (3)cubic:双三次插值  (4)v4:MATLAB 4.0 版本中提供的插值算法

  得到了插值点集合,绘制曲面图的话可以用 mesh()、surf(),前者得到的是网格划分的三维曲面图,后者得到的是平滑着色的三维曲面图。在这里我选择surf(),用mesh()也是可以的。

  之后是绘制等高线、城区分类与图例。

  难点是在绘制图例,我采用的办法是使用函数 legend() 。首先利用 plot() 绘制五个线条并返回创建的图线条对象。然后,legend()通过将第一个输入参数指定为要包含的图线条对象的向量,创建一个只包括其中两个线条的图例。更多图例方法请参考 [2] 。

  以国赛2011年A题附件1 [1] 为例,matlab脚本代码如下:

clear all,clc;
data = load(\'data1.txt\');
x = data(:, 1);
y = data(:, 2);
z = data(:, 3);
d = data(:, 4);
[X,Y,Z] = griddata(x,y,z,linspace(min(x),max(x))\',linspace(min(y),max(y)),\'v4\'); %插值
subplot(1,2,1); 
surfc(X,Y,Z); %三维曲面
xlabel(\'X\'); ylabel(\'Y\'); zlabel(\'海拔/m\');
title(\'地势图\')
axis tight
N = 15;
subplot(1,2,2); 
[c, h] = contour(X, Y, Z, [0:30:308]);
clabel(c, h); xlabel(\'X\'); ylabel(\'Y\');
hold on
for i = 1:1:length(x)
    switch d(i)
        case 1
            p1 = plot(x(i), y(i), \'ro\');
        case 2
            p2 = plot(x(i), y(i), \'khexagram\');      
        case 3
            p3 = plot(x(i), y(i), \'g^\'); 
        case 4
            p4 = plot(x(i), y(i), \'y*\');
        case 5
            p5 = plot(x(i), y(i), \'gx\'); 
    end     
end
legend([p1, p2, p3, p4, p5], \'生活区\', \'工业区\', \'山区\', \'交通区\', \'公园绿地区\', \'Location\', \'northeastoutside\');
hold off
title(\'等高线以及城区分类\')

 

  效果如下:

 

  

              国赛2011年A题附件1插值拟合出来的三维地势图

 

   

           国赛2011年A题附件1的等高线以及城市分区

 

参考


 

  [1]:国赛2011年A题下载网址:http://www.matlabsky.com/thread-19740-1-1.html

       [2]:利用 legend() 添加图例:https://ww2.mathworks.cn/help/matlab/ref/legend.html#bt6ef_q-2_1

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
EmbarcaderoDelphi7Enterprise7.0.4.453中文版发布时间:2022-07-18
下一篇:
Delphi注释发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap