【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法「建议收藏」

【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法「建议收藏」meshgrid函数用来生成网格矩阵,可以是二维网格矩阵,也可以是三维。对于生成二维网格,用法为:[xy]=meshgrid(ab); %a和b是一维数组,如a=[123];b=[234];则生成的x和y都是二维的矩阵,x的每行都是123,共三行,y每列都是234,共三列。举个实例:Forexample, toevaluateth

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

——————————————————————

 meshgrid 函数用来生成网格矩阵,可以是二维网格矩阵。

  • exp1_1:生成二维网格,用法为:[x y]=meshgrid(a b);  % a 和b是一维数组,如a=[1 2 3]; b= [2 3 4]; 则生成的 X 和 Y 都是为 3X3 维的矩阵,

>> [x y]=meshgrid(a,b)
x =
    1     2     3
    1     2     3
    1     2     3
y =
  2     2     2
  3     3     3
  4     4     4
    

  • exp1_2:生成二维网格,用法为:[x y]=meshgrid(a b);  % a 和b是一维数组,如a=[1 2 3]; b= [2 3]; 则生成的 X 和 Y 都是为 3X2 维的矩阵,

>> [x y]=meshgrid(a,b)
x =
     1     2     3
   
 1     2     3
y =
     2     2     2
     3     3     3

  • exp1_3:生成二维网格,用法为:[x y]=meshgrid(a b);  % a 和b是一维数组,如a=[1 2]; b= [2 3 4]; 则生成的 X 和 Y 都是为 2X3 维的矩阵,

>> [x y]=meshgrid(a,b)
x =
     1     2
     1     2
     1     2
y =
      2     2
      3     3
      4     4

——————————————————————
 meshgrid 函数用来生成网格矩阵,可以是三维网格矩阵。
  • exp2_1:生成三维网格,

x 的每行都是 1 2 3,共三行,y 每列都是2 3 4,共三列。

举个实例:估计函数:x*exp(-x^2-y^2),取值范围 -2 < x < 2, -2 < y < 2,

                [X,Y] = meshgrid(-2:.2:2, -2:.2:2);

                 Z = Y .* exp(-X.^2 – Y.^2);

                 mesh(X,Y,Z)

对于三维网格,生成方式与二维一样 :[x y z]=meshgrid(a b c) ; %算出的结果根据二维的类推

附件:二维网格例子的结果图。

 【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法「建议收藏」【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法「建议收藏」

——————————————————————

meshgrid和ndgrid的区别及用法

实例:z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y), 用三次样条插值方法得到三维数据网格的样条插值拟合,并绘制曲面
  x0=-3:.6:3;
  y0=-2:.4:2;
  [x,y]=ndgrid(x0,y0);
%{
>> x0=-3:.6:3;y0=-2:.4:2;
  [x,y]=ndgrid(x0,y0)
x =
  Columns 1 through 6
   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000
   -2.4000   -2.4000   -2.4000   -2.4000   -2.4000   -2.4000
   -1.8000   -1.8000   -1.8000   -1.8000   -1.8000   -1.8000
   -1.2000   -1.2000   -1.2000   -1.2000   -1.2000   -1.2000
   -0.6000   -0.6000   -0.6000   -0.6000   -0.6000   -0.6000
    0       0       0       0       0       0
    0.6000   0.6000   0.6000   0.6000   0.6000    0.6000
    1.2000   1.2000   1.2000   1.2000   1.2000    1.2000
    1.8000   1.8000   1.8000   1.8000   1.8000    1.8000
    2.4000   2.4000   2.4000   2.4000   2.4000    2.4000
    3.0000   3.0000   3.0000   3.0000   3.0000    3.0000
  Columns 7 through 11
   -3.0000   -3.0000   -3.0000   -3.0000   -3.0000
   -2.4000   -2.4000   -2.4000   -2.4000   -2.4000
   -1.8000   -1.8000   -1.8000   -1.8000   -1.8000
   -1.2000   -1.2000   -1.2000   -1.2000   -1.2000
   -0.6000   -0.6000   -0.6000   -0.6000   -0.6000
    0       0       0       0       0
    0.6000    0.6000    0.6000    0.6000    0.6000
    1.2000    1.2000    1.2000    1.2000    1.2000
    1.8000    1.8000    1.8000    1.8000    1.8000
    2.4000    2.4000    2.4000    2.4000    2.4000
    3.0000    3.0000    3.0000    3.0000    3.0000
y =
  Columns 1 through 6
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
   -2.0000   -1.6000   -1.2000   -0.8000   -0.4000         0
  Columns 7 through 11
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
    0.4000    0.8000    1.2000    1.6000    2.0000
%}
  z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);
  sp=csapi({x0,y0},z);
  fnplt(sp);
附件:san维网格例子的结果图。
【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法「建议收藏」【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法「建议收藏」
            
  • 其实,对于2D,3D使用meshgrid和ndgrid都可以,但要注意:
  • [X1,X2,X3] = NDGRID(x1,x2,x3)<=>[X2,X1,X3] = MESHGRID(x2,x1,x3)
  • x和y轴要反向
            
  • 为何呢?帮助说的很清楚:因为NDGRID适用于n维空间,而meshgrid适用于笛卡尔空间。
  • meshgrid和ndgrid的用法不同之处在于:2D、3D都可以使用(区别是x轴,y轴的转换),但对于4D、5D...只能使用ndgrid.
  • 为什么要使用meshgrid?
  • matlab使用矩阵的方式进行运算,对于2D而言,如果采样10个点(指x,y轴),那么对于x=第一个采样点,反映到矩阵就是10个,即不管y是哪个值,x的第一采样点保持不变;对y是同理。因此,2D产生的x和y都是两维矩阵。
  • 最后给一个实例,说明两者在这里是通用的:
x0=-3:.6:3; y0=-2:.4:2; [x,y]=ndgrid(x0,y0); [Y,X]=meshgrid(y0,x0); z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y); Z=(X.^2-2*X).*exp(-X.^2-Y.^2-X.*Y); SP1=csapi({x0,y0},z); SP2=csapi({x0,y0},Z); subplot(121),fnplt(SP1); subplot(122),fnplt(SP2);

附件:meshgrid和ndgrid网格例子的结果比较图

【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法「建议收藏」【matlab】函数meshgrid的用法详解(生成网格矩阵)和ndgrid的区别及用法「建议收藏」

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131325.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 开心农场2激活成功教程版无限金币钥匙_开心农场2乡村度假内购激活成功教程版

    开心农场2激活成功教程版无限金币钥匙_开心农场2乡村度假内购激活成功教程版 最近开心农场非常火,同学用C#模拟鼠标点击操作做了一个小外挂,但是这样做有如下缺点:1、计算机不能做其他事情,2、必须开着浏览器,3、对所有好友点一遍的时间太慢,4、对于开发者来说技术含量低了点,呵呵。 所以我尝试着改进这种实现,我的想法是:不用开启浏览器,直接运行一个应用程序,该程序将自己伪装成一个浏览器,与服务器连接,并发送浇水、除虫等命令。这样,甚至可以使用多线程向服务器发送命令,无需…

  • 计算机最炫民族风教案,辽师大版信息技术四下第一单元第6课《最炫民族风》教案7.docx…[通俗易懂]

    计算机最炫民族风教案,辽师大版信息技术四下第一单元第6课《最炫民族风》教案7.docx…[通俗易懂]辽师大版信息技术四下第一单元第6课《最炫民族风》教案7.docx文档编号:536850文档页数:5上传时间:2019-01-13文档级别:文档类型:docx文档大小:7.00MB课课题题美丽的辽宁我的家美丽的辽宁我的家–WordWord软件的简单应用软件的简单应用66、、最炫民族风最炫民族风教学目标教学目标1、学会结合文章的内容进行分栏;2、学会设置页面颜色与页面效果;3、…

  • PVPlayer的实现方式

    PVPlayer的实现方式关于opencore下多媒体播放,在mediaserver进程里面仅仅有一行代码:MediaPlayerService::instantiate();这行代码的作用是初始化一个MediaPlayerS

  • numba 高级用法

    numba 高级用法numba是一个用于编译Python数组和数值计算函数的编译器,这个编译器能够大幅提高直接使用Python编写的函数的运算速度。numba使用LLVM编译器架构将纯Python代码生成优化过的机器码,通过一些添加简单的注解,将面向数组和使用大量数学的python代码优化到与c,c++和Fortran类似的性能,而无需改变Python的解释器。Numba的主要特性:动态代码生成(…

    2022年10月27日
  • 深度好文 | 深圳IT人力外包客户如何做好外包客户的征询?

    深度好文 | 深圳IT人力外包客户如何做好外包客户的征询?1、询问公司的人数、技术团队及技术人员分布情况。2、公司的项目情况。(产品型or项目型、项目简单介绍、项目所处阶段、项目配备人员、预计开发周期、项目远期规划)3、采用外包的原因。(人员编制、项目紧急、招聘流程满、技术招聘能力不足、项目周期性、不愿养太多技术人员等)4、是否接触过外包、有无外包人员、最长外派多久了。5、职位需求、数量、周期、是否自备电脑。Java人员外包、web前端外包、Androi…

  • 单片机流水灯程序[通俗易懂]

    单片机流水灯程序[通俗易懂]一、流水灯实验1、设计要求P1口接8个发光二极管,烧录程序后发光二极管依次点亮2、硬件要求利用proteusIsis仿真,选择器件,AT89C51、LED-BLUE、RES3、软件设计源程序:/*********************必要变量定义******************/#include&lt;reg51.h&gt;#include&lt;intrns.h&gt;…

发表回复

您的电子邮箱地址不会被公开。

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