【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的区别及用法「建议收藏」

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

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

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


相关推荐

  • DropDownList绑定及修改

    DropDownList绑定及修改一、DropDownList:1、选项值保存到数据库:Hashtableht=newHashtable();//这里用Hashtableht.Add(“字段名”,DropDownListID.SelectedItem.Text.ToString());//保存选项Textht.Add(“字段名”,DropDownListID.SelectedItem….

    2022年10月16日
    0
  • shell脚本运行jar包获取参数_linux加载一个目录下的所有jar包

    shell脚本运行jar包获取参数_linux加载一个目录下的所有jar包当使用SpringBoot框架时,他自己集成了tomcat。在启动jar包时,经常需要复制一大段命令,尤其是在项目目录发生改变的时候,实在繁琐。所以可以使用shell脚本来启动、关闭和重启Java项目。创建一个shell脚本vim脚本名.sh脚本内容:#!/bin/bash#这里可替换为你自己的执行程序,其他代码无需更改JAR_NAME=jar包名称#lib目录LOAD_PATH=”-Dloader.path=/home/local/lib/”#项目配置文件CONFIG_PATH

    2022年9月26日
    0
  • 计算机病毒的分类

    计算机病毒的分类病毒与木马病毒:指编制或在计算机程序中插入的破坏计算机功能或破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或程序代码。木马:是一种后门程序,被黑客用作控制远程计算机的工具。木马与病毒不同的是,木马不会自我繁殖,并不会刻意地感染其他文件,它的作用就是为黑客打开远程计算机的门户,从而可以让黑客来远程控制计算机,使黑客获取有用的信息。病毒是自动破坏目标计算机,而木马需要人为的去操控…

    2022年5月3日
    45
  • spring4.1 请求rest接口406问题解决(转换JSON)[通俗易懂]

    前文说明,本来项目使用的是springmvc的模式,然后接口都是使用的是@Controller+@ResponseBody配置json转换的代码是

    2022年4月9日
    83
  • Supplier接口

    Supplier接口目录一 Supplier 接口源码二 Supplier 示例三 其他 Supplier 接口一 Supplier 接口源码 publicinterf T Getsaresult returnaresul Tget Supplier 接口是一个供给型的接口 本质就是一个容器 可以用来存储数据 或者是产生数据的规则 然后可以供其 T

    2025年6月11日
    0
  • 86_比特币冷钱包实现思路

    86_比特币冷钱包实现思路引言2015年的羊年新年假期,中国最大的竞争币交易所之一的比特儿传出冷钱包被盗的新闻,7170个比特币被黑客瞬间偷走,损失超过1000万元人民币。大家不禁要问,比特币都放进冷钱包了还会被偷走,这比特币还能玩吗?这不靠谱啊!比特儿交易所老总在之后的媒体采访中几次强调,“密码被激活成功教程”,冷钱包和密码有很大关系吗?还是这位老总根本不知道何为冷钱包。引用Okcoin创始人徐明星的一句话来…

    2022年8月30日
    2

发表回复

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

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