matlab中 meshgrid 函数的用法

matlab中 meshgrid 函数的用法转自:https://blog.csdn.net/foreverhuylee/article/details/32731349meshgrid是MATLAB中用于生成网格采样点的函数。在使用MATLAB进行3-D图形绘制方面有着广泛的应用。函数功能生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时,往往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3-D绘图操作时,涉及到x、…

大家好,又见面了,我是你们的朋友全栈君。

meshgrid是MATLAB中用于生成网格采样点的函数。在使用MATLAB进行3-D图形绘制方面有着广泛的应用。

函数功能

生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时, 往往需要一些采样点,然后根据这些采样点来绘制出整个图形。
在进行3-D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x, y)。

例如, 要在“3<=x<=5,6<=y<=9,z不限制
区间” 这个区域内绘制一个3-D图形,如果只需要整数坐标为
采样点的话。我们可能需要下面这样一个坐标构成的
矩阵

(3,9),(4,9),(5,9);

(3,8),(4,8),(5,8);

(3,7),(4,7),(5,7);

(3,6),(4,6),(5,6);   //
这些都是XOY平面的坐标点

在matlab中我们可以这样描述这个坐标
矩阵

把各个点的x坐标独立出来,得:

3,4,5;

3,4,5;

3,4,5;

3,4,5;

可以把这个矩阵设为X~~

再把各个点的y坐标也独立出来:

9,9,9;

8,8,8;

7,7,7;

6,6,6;

可以把这个矩阵设为Y~~

这样对应的x、y结合,便表示了上面的坐标
矩阵
meshgrid就是产生这样两个
矩阵,来简化我们的操作。然后根据(x, y)计算获得z,并绘制出三维图形。



语法

[X,Y] = 
meshgrid(x,y)    //
这个语句是用的最多的语句

上面的描述,我们可以知道,meshgrid返回的两个矩阵X、Y必定是行数、列数相等的
(即X、Y两个矩阵都有相同的行数,和相同的列数)

且X、Y的行数都等于输入参数y中元素的总个数,X、Y的列数都等于输入参数x中元素总个数(这个结论可以通过查看
meshgrid的源代码得到,可以通过示例程序得到验证)。(我们自己也可以体会到)

[X,Y]=
meshgrid(x)与[X,Y]=
meshgrid(x,x)是等同的

[X,Y,Z]=
meshgrid(x,y,z)生成三维
数组,可用来计算三
变量的函数和绘制三维立体图

相关函数: plot3、
mesh
surf、automesh、
ndgrid




我们自己也可以测试一下:

在MATLAB命令行中,输入一下内容~

x = rand(3, 4);
       y = rand(2, 3);
      [X, Y] = meshgrid(x, y)

回车后,会产生如下数据:

x =

    0.4039    0.9421    0.0598    0.8212
    0.0965    0.9561    0.2348    0.0154
    0.1320    0.5752    0.3532    0.0430

y =

    0.1690    0.7317    0.4509
    0.6491    0.6477    0.5470

X=

    0.4039    0.0965    0.1320    0.9421    0.9561    0.5752    0.0598    0.2348    0.3532    0.8212    0.0154    0.0430
    0.4039    0.0965    0.1320    0.9421    0.9561    0.5752    0.0598    0.2348    0.3532    0.8212    0.0154    0.0430
    0.4039    0.0965    0.1320    0.9421    0.9561    0.5752    0.0598    0.2348    0.3532    0.8212    0.0154    0.0430
    0.4039    0.0965    0.1320    0.9421    0.9561    0.5752    0.0598    0.2348    0.3532    0.8212    0.0154    0.0430
    0.4039    0.0965    0.1320    0.9421    0.9561    0.5752    0.0598    0.2348    0.3532    0.8212    0.0154    0.0430
    0.4039    0.0965    0.1320    0.9421    0.9561    0.5752    0.0598    0.2348    0.3532    0.8212    0.0154    0.0430

Y =

    0.1690    0.1690    0.1690    0.1690    0.1690    0.1690    0.1690    0.1690    0.1690    0.1690    0.1690    0.1690
    0.6491    0.6491    0.6491    0.6491    0.6491    0.6491    0.6491    0.6491    0.6491    0.6491    0.6491    0.6491
    0.7317    0.7317    0.7317    0.7317    0.7317    0.7317    0.7317    0.7317    0.7317    0.7317    0.7317    0.7317
    0.6477    0.6477    0.6477    0.6477    0.6477    0.6477    0.6477    0.6477    0.6477    0.6477    0.6477    0.6477
    0.4509    0.4509    0.4509    0.4509    0.4509    0.4509    0.4509    0.4509    0.4509    0.4509    0.4509    0.4509
    0.5470    0.5470    0.5470    0.5470    0.5470    0.5470    0.5470    0.5470    0.5470    0.5470    0.5470    0.5470


因为rand(3, 4)会自动生成一个3行4列的矩阵,且矩阵中的元素大小在0~1之间

rand(2, 3)会自动生成一个2行3列的矩阵,且矩阵中的元素大小在0~1之间~~

这样就相当于x轴有3*4即有12个元素,y轴有6个元素,

所以,在调用meshgrid时,X、Y矩阵会有6行12列,

在XOY平面,会产生 72 个点。。。


[X,Y]=meshgrid(-4:0.5:22,-11:0.5:10);

调用这个语句时,X轴方向会有26*2=52个点

Y轴方向会有21*2=42个点, 

所以,我们绘制的三维图像网格中,会有52*42=2184个点

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133054.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vim设置编码

    vim设置编码Vim设置编码让Vim能正确显示和保存各种编码文件内容是个头疼的事情,今天专注的把这个问题研究一下首先是Vim编码配置的三个选项:encoding(enc):此项目配置的是vim的默认显示编码,如果你打开的文件编码与该属性配置的编码不同,那么Vim会将编码自动转换到配置编码再显示fileencodings(fencs):此项目配置的是一个编

    2022年9月29日
    2
  • 安装VM虚拟机教程

    安装VM虚拟机教程虚拟机安装及新建指南安装 VM 虚拟机创建虚拟机开启虚拟机安装 VM 虚拟机待定创建虚拟机 1 新建虚拟机 2 默认选择自定义 直接下一步 3 默认点击下一步 4 默认点击下一步 5 这里我选择的是 Linux 系统 默认点击下一步 6 更改虚拟机名称及安装位置 7 选择处理器数量 8 选择虚拟机内存 9 默认下一步 10 默认下一步 11 默认下一步 12 默认下一步 13 分配磁盘大小 14 磁盘文件名 默认下一步 15 选择自定义硬件 16 选择使用的镜像文件 17 点击完成

    2025年8月18日
    4
  • HMM超详细讲解+代码[通俗易懂]

    HMM超详细讲解+代码[通俗易懂]写在前面本文目标Why-什么场景下需要HMM模型What-HMM模型的相关概念定义HMM模型的5元组HMM中的3个经典问题How-HMM模型中的3个经典问题评估评估描述评估理论推导评估实际算法前向计算python前向算法代码预测预测描述维特比算法python维特比算法代码学习EM算法实例理解baum-welch算法的思路python代码baum-w

    2025年8月15日
    3
  • python面试题及答案_微型计算机原理与接口第四版答案

    python面试题及答案_微型计算机原理与接口第四版答案题目目录什么是接口测试?为什么要做接口测试/接口测试有哪些优势?请问你们公司是如何做接口测试的?怎么设计接口测试用例?没有接口文档如何做接口测试?怎么区分bug是前端还是后端的bug?常用的接口测试工具?接口之间数据依赖如何处理?依赖于第三方数据的接口如何进行测试?你平常做接口测试的过程中发现过哪些bug?当接口出现异常时候,你是如何分析异常的?什么是接口测试?接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求测试的重点是

    2022年9月26日
    2
  • canopen协议的介绍之NMT节点管理;

    canopen协议的介绍之NMT节点管理;耐心查看 必有所获 尽量别跳过 否则有些前面写了的 后面可不一定解释了 一个系列的首页 https blog csdn net kissgoodbye2 article details canopen 需要掌握的知识 1 对象字典 OD 最重要 需要了解 2 NMT 节点管理 主节点来操作 3 PDO 过程数据传输 4 SDO 对象字典配置

    2025年6月2日
    2
  • .net的winform中DialogResult属性的使用

    .net的winform中DialogResult属性的使用在winform项目开发时,我们常会遇到一种情况,在主窗口中需要打开窗口进行数据的增加或修改,关闭子窗口时需要刷新主窗口数据。此时就用到DialogResult这个属性。下面用一个简单例子说明Dia

    2022年7月1日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号