• 网格数据生成函数meshgrid


    想要画三维图,得到网格坐标非常重要,matlab提供了一个叫做meshgrid的函数,很容易就可根据参数生成网格化坐标,当然,这些网格化坐标是以一种特定的计算方法生成的。

    语法:

    [X,Y] = meshgrid(x,y)

    [X,Y] = meshgrid(x)

    说明:在这里第一种方式,x,y都是向量,而生成的X,Y则是矩阵。其中X的每一行是由x中的数按顺序构成,Y的每一列由y中的数按顺序构成

    第二种方式本质上是x与y相等情况下的一种简写。

    来看一些例子:

    >> x=1:4

    x =

    1     2     3    4

    >> y=1:5

    y =

    1     2     3    4     5

    >> [X,Y]=meshgrid(x,y)

    X =

    1     2     3    4

    1     2     3    4

    1     2     3    4

    1     2     3    4

    1     2     3    4

    Y =

    1     1     1    1

    2     2     2    2

    3     3     3    3

    4     4     4    4

    5     5     5    5

    可以看出,生成的X,Y维数相同,相同位置数据构成一组数(坐标),这样就构成了一个网格。

    当然,还有另一种网格数据生成方式,

    >> x=1:4

    x =

    1     2     3    4

    >> y=(1:5)'   

    y =

    1

    2

    3

    4

    5

    >> X=ones(size(y))*x

    X =

    1     2     3    4

    1     2     3    4

    1     2     3    4

    1     2     3    4

    1     2     3    4

    >> Y=y*ones(size(x))

    Y =

    1    1     1     1

    2     2     2    2

    3     3     3    3

    4     4     4    4

    5     5     5    5

    两种方式结果相同,当然,meshgrid函数要复杂得多,有兴趣的可以在matlab命令行输入edit meshgrid,打开meshgrid函数看看。得到网格数据之后,那么便可进行三维图形绘制了。

    >> Z=X.^2+Y

    Z =

    2     5    10   17

    3     6    11   18

    4     7    12   19

    5     8    13   20

    6     9    14   21

    >> surf(X,Y,Z)

    这样一个三维图形就已经画好了,本质上也就是将二维坐标与第三维坐标结合形成三维坐标,然后连线,填充生成曲面。

    我的公众号:简单编程之旅

    欢迎关注!

     

  • 相关阅读:
    【华为OD机试真题 JS】计算面积
    论文解读(GCC)《GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training》
    idea常用的一些配置信息
    笔试题知识点
    Github创建远程仓库(项目)
    Django任务管理
    POI实现Excel导入和导出(源码测试)
    尚优选项目流程&布局参数
    JQuery核心函数$
    vue超好用的自定义指令封装
  • 原文地址:https://blog.csdn.net/m0_57569438/article/details/126040818