zoukankan      html  css  js  c++  java
  • matlab-画地形图

    1.画三维图

    之前画曲面的三维图,运用z=x2+y2 算出z和Z,如果是给出数据的地形则没办法用公式算,为此,引入插值自动造出地形的坐标。

    拟合和插值的区别:插值是必须要过点,曲线可以不光滑;拟合则是可以不过点,曲线要光滑。

    例如依旧画出z=x2+y,但只给出固定点,插值出Z矩阵。

    clc;
    clear all;
    
    x=[-3 -2 -1 0 1 2 3];
    y=[-3 -2 -1 0 1 2 3];
    z=[18 8 2 0 2 8 18];
    xminn=min(x)
    xmaxx=max(x)
    yminn=min(y);
    ymaxx=max(x);
    zminn=min(z);
    zmaxx=max(z);
    
    [X,Y,Z]=griddata(x,y,z,linspace(xmaxx,xminn)',linspace(yminn,ymaxx),'v4');
    %v4是一个插值,理解成自动造出Z矩阵即可,第4第5个需要其中一个转置
    surf(X,Y,Z)
    

    再用公式法求Z看看画出的图对比是否相同

    clear all;
    clc;
    x=-3:0.05:3;
    y=-3:0.05:3;
    z=x.^2 + y.^2;
    [X,Y]=meshgrid(x,y);
    Z=X.^2 + Y.^2;
    surf(X,Y,Z);
    

    显然,画出的图形状几乎一样,因为点与点的间距使得图形有些不同,插值有很多种,v4插值适用,就用v4吧,可以尝试其他插值是否得出想要的结果。

    2.画四维图

    除了长宽高,怎么可能画得出其他维度,往往需要体现地形上的温度、浓度等指标,这类“第四维度”一般用颜色体现出来。

    clc
    %手动导入表中数据后,对x、y、z、r赋值
    
    x=one(:,1);
    y=one(:,2);
    z=one(:,3);%高度
    r=one(:,11);%浓度
    
    [X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值,造出Z
    
    variables=one(:,1:3);
    F=TriScatteredInterp(variables,r,'linear');
    R=F(X,Y,Z);
    %以上3句,理解为造出R,这个R和前三个东西都有关系,插值用的是linear,此处不能用v4
    surf(X,Y,Z,R)
    title('4D');
    colormapeditor %颜色编辑器,颜色较深可调色,嫌麻烦就随便弄1,工具-标准颜色图-hsv
    

    为了体现“第四维度”,一般需要调出颜色条。

  • 相关阅读:
    您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
    redis和jedis的用法,区别
    Jedis实现多种功能总结
    Druid简单介绍
    Svn与Git的区别
    SVN的一些基本概念(学前了解)
    Redis-cli 的功能
    postman的使用方法
    Spring Boot 有哪些优点?
    Redis中的常用命令哪些?
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/11382305.html
Copyright © 2011-2022 走看看