zoukankan      html  css  js  c++  java
  • meshgrid

     

    说明

    示例

    [X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。

    示例

    [X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)×length(x) 的方形网格坐标。

    示例

    [X,Y,Z] = meshgrid(x,y,z) 返回由向量 xy 和 z 定义的三维网格坐标。XY 和 Z 表示的网格的大小为 length(y)×length(x)×length(z)

    示例

    [X,Y,Z] = meshgrid(x) 与 [X,Y,Z] = meshgrid(x,x,x) 相同,并返回网格大小为 length(x)×length(x)×length(x) 的三维网格坐标。

     

    示例

    全部折叠

    二维网格

    使用向量 x 定义的 x 坐标和向量 y 定义的 y 坐标创建二维网格坐标。

    x = 1:3;
    y = 1:5;
    [X,Y] = meshgrid(x,y)
    X = 5×3
    
         1     2     3
         1     2     3
         1     2     3
         1     2     3
         1     2     3
    
    
    Y = 5×3
    
         1     1     1
         2     2     2
         3     3     3
         4     4     4
         5     5     5
    
    

    在二维网格上计算表达式 x2+y2。

    X.^2 + Y.^2
    ans = 5×3
    
         2     5    10
         5     8    13
        10    13    18
        17    20    25
        26    29    34
    
    
     
     

    绘制曲面图

    使用均匀分布的 x 坐标和 y 坐标在区间 [-2,2] 内创建二维网格。

    x = -2:0.25:2;
    y = x;
    [X,Y] = meshgrid(x);

    在二维网格上计算并绘制函数 f(x,y)=xex2y2。

    F = X.*exp(-X.^2-Y.^2);
    surf(X,Y,F)

    从 R2016b 开始,操作网格之前并不总是需要先创建网格。例如,计算表达式 xex2y2 将隐式扩展向量 x 和 y。有关隐式扩展的详细信息,请参阅数组与矩阵运算

    surf(x,y,x.*exp(-x.^2-(y').^2))

     
     

    三维网格

    在区间 [0,6] 内使用定义的 xy 和 z 坐标创建三维网格坐标,并计算表达式 x2+y2+z2。

    x = 0:2:6;
    y = 0:1:6;
    z = 0:3:6;
    [X,Y,Z] = meshgrid(x,y,z);
    F = X.^2 + Y.^2 + Z.^2;

    确定网格的大小。三个坐标向量具有不同的长度,构成一个网格点矩形框。

    gridsize = size(F)
    gridsize = 1×3
    
         7     4     3
    
    

    使用单输入语法,基于 x 中定义的坐标生成均匀分布的三维网格。新网格构成一个网格点正方体。

    [X,Y,Z] = meshgrid(x);
    G = X.^2 + Y.^2 + Z.^2;
    gridsize = size(G)
    gridsize = 1×3
    
         4     4     4
    
    
     
     

    输入参数

    全部折叠

    x - 点的 x 坐标
    向量

    点的 x 坐标,指定为向量。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    y - 点的 y 坐标
    向量

    点的 y 坐标,指定为向量。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    z - 点的 z 坐标
    向量

    点的 z 坐标,指定为向量。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    输出参数

    全部折叠

    X - 网格上的 x 坐标
    二维或三维数组

    网格上的 x 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。

    Y - 网格上的 y 坐标
    二维或三维数组

    网格上的 y 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。

    Z - 网格上的 z 坐标
    三维数组

    网格上的 z 坐标,以三维数组形式返回。

     

    ****************************************************************************************************************************************************************************************************************

    • 函数功能

      生成绘制3D图形所需的网格数据。在计算机中进行绘图操作时, 往往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x, y)
      例如, 要在“3<=x<=5,6<=y<=9,z不限制区间” 这个区域内绘制一个3D图形,如果只需要整数坐标为采样点的话。我们可能需要下面这样一个坐标构成的矩阵
      (3,9),(4,9),(5,9);
      (3,8),(4,8),(5,8);
      (3,7),(4,7),(5,7);
      (3,6),(4,6),(5,6);
      在matlab中我们可以这样描述这个坐标矩阵:
      把各个点的x坐标独立出来,得:
      3,4,5;
      3,4,5;
      3,4,5;
      3,4,5;
      再把各个点的y坐标也独立出来:
      9,9,9;
      8,8,8;
      7,7,7;
      6,6,6;
      这样对应的x、y结合,便表示了上面的坐标矩阵meshgrid就是产生这样两个矩阵,来简化我们的操作。然后根据(x, y)计算获得z,并绘制出三维图形。
      在Matlab命令窗口中键入type meshgrid可以查看该函数的源代码(由此可以理解meshgrid的算法思想), 键入doc meshgrid或者help meshgrid可以获得帮助文档。

      语法

      [X,Y] = meshgrid(x,y)
      解释:输出X的每一行的数值都是复制的x的值;输出Y的每一列的数值都是复制的y的值。
      [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
      [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
      相关函数: plot3、meshsurf、automesh、ndgrid

     

     
  • 相关阅读:
    stanford nlp 3.8.0 parser输出的问题
    stanford nlp 3.8.0 parse中通过java程序获取root节点
    spring boot 项目中hanlp的配置(可增加自定义词典)
    springmvc jsonp 跨域调用的例子
    滚动字幕Marquee
    table-列组
    限时抢购-倒计时
    canvas基础绘制-绚丽时钟
    canvas基础绘制-绚丽倒计时
    JS进阶-闭包的几种常见形式
  • 原文地址:https://www.cnblogs.com/hyb221512/p/13695393.html
Copyright © 2011-2022 走看看