zoukankan      html  css  js  c++  java
  • 使用Matlab绘制三维图的几种方法

    以下六个函数都可以实现绘制三维图像:

    • surf(xx,yy,zz);
    • surfc(xx,yy,zz);
    • mesh(xx,yy,zz);
    • meshc(xx,yy,zz);
    • meshz(xx,yy,zz);
    • waterfall(xx,yy,zz);
    • plot3(xx,yy,zz);

    其中值得说明的是如何构造出对应的数据出来(xx, yy, zz)出来。下面通过一段标准的代码段进行展示如何构造出相应的数据。

    x=-1:0.1:1;
    y=-1:0.1:1;
    [xx,yy]=meshgrid(x,y);
    zz=xx.*exp(-xx.^2-yy.^2);
    surf(xx,yy,zz);

    其中meshgrid的作用就是生成网格(矩阵)数据xx,yy。观察xx,yy的数据为:
    xx的数据
    x的数据
    从图中可以看到实际上xx是将x复制了y的长度份,也就是将二维平面(x,y)按照x, y设定的步长分割成网络,自然对应的zz也应该是对应有网格x,y的各自长度的乘积个,如下图所示:
    zz的数据
    最后上段代码绘制出来的图像为:
    这里写图片描述
    其中还有一个值得说明的是plot3函数与plot函数用法类似,同样的按照类似mesh等的构造数据的方法,如果仅仅绘制在mesh图像中的某些数据点,就可以采用plot3函数实现。比如下段代码就可以实现绘制点,并且连线的功能:

    x0 = 0; y0 = 0; z0 = 0;
    plot3(x0,y0,z0,'*k','linewidth',2,'markersize',10);
    plot3(indexcol,indexrow,z0,'*k','linewidth',2,'markersize',10);
    plot3(indexcol,indexrow,maxScore,'*k','linewidth',2,'markersize',10);
    xx2(1) = x0; xx2(2) = indexcol;
    yy2(1) = y0; yy2(2) = indexrow;
    zz2(1) = z0; zz2(2) = z0;
    plot3(xx2, yy2, zz2, 'r','linewidth',2);

    结果如下图所示:
    绘制3维曲线


    2015-8-18
    艺少

  • 相关阅读:
    halcon算子翻译——dev_set_paint
    Halcon算子翻译——dev_set_lut
    JDK、JRE、JVM各自是什么、以及什么关系
    dict 增删改查
    str 操作方法
    python基础_格式化输出(%用法和format用法)
    python spilt()函数的使用方法
    iterable- 什么是可迭代对象
    list 增 删 改 查 及 公共方法
    python 基本数据类型
  • 原文地址:https://www.cnblogs.com/huty/p/8519233.html
Copyright © 2011-2022 走看看