[MATLAB]中meshgrid函数的用法与实践(学习笔记)

今天在看点目标成像仿真程序的时候,看到了meshgrid函数,看了matlab的帮助文档后理解了一点,特此记录学习过程。

目录

  • 一、meshgrid函数
  • 二、举例验证
  • 三、创建二维网格绘制曲面图
  • 四、总结
  • 五、meshgrid函数源代码(仅供参考):


一、meshgrid函数

meshgrid函数是MATLAB中用于生成网格采样点数的函数,通常进行2D、3D图形的绘制。

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

2 、[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x)相同,返回网格大小为length(x)*length(x)的方形网格矩阵。

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


二、举例验证

1.【X,Y】 = meshgrid(x,y) , 代码如下:

a 、b矩阵个数相同:

a = [1 2 3 4];
b = [5 6 7 8];
[A,B] = meshgrid(a,b)

结果:

A =1     2     3     41     2     3     41     2     3     41     2     3     4B =5     5     5     56     6     6     67     7     7     78     8     8     8>> 

a 、b矩阵数量不同:

a = [1 2 3];
b = [4 5 6 7];
[A,B] = meshgrid(a,b)
A =1     2     31     2     31     2     31     2     3B =4     4     45     5     56     6     67     7     7>> 

2、【X,Y】 = meshgrid(x), 代码如下:

x  = [1 2 3];
[X,Y] = meshgrid(x)
X =1     2     31     2     31     2     3Y =1     1     12     2     23     3     3
>>
x = [1 2 3];
>> [X,Y] = meshgrid(x,x)X =1     2     31     2     31     2     3Y =1     1     12     2     23     3     3>> 

三、创建二维网格绘制曲面图

使用均匀分布的x和y坐标在-4到4之间创建二维网格:

代码如下:

x = -4:0.2:4;
y = x;
[X,Y] = meshgrid(x);
F = X.*exp(-X.^2 - Y.^2);
surf(X,Y,F);

在这里插入图片描述


四、总结

为什么要使用meshgrid?
matlab使用矩阵的方式进行运算,对于2D而言,如果采样10个点(指x,y轴),那么对于x=第一个采样点,反映到矩阵就是10个,即不管y是哪个值,x的第一采样点保持不变;对y是同理。因此,2D产生的x和y都是两维矩阵。


五、meshgrid函数源代码(仅供参考):

源代码:
function [xx,yy,zz] = meshgrid(x,y,z)
%MESHGRID Cartesian grid in 2-D/3-D space
% [X,Y] = MESHGRID(xgv,ygv) replicates the grid vectors xgv and ygv to
% produce the coordinates of a rectangular grid (X, Y). The grid vector
% xgv is replicated numel(ygv) times to form the columns of X. The grid
% vector ygv is replicated numel(xgv) times to form the rows of Y.
%
% [X,Y,Z] = MESHGRID(xgv,ygv,zgv) replicates the grid vectors xgv, ygv, zgv
% to produce the coordinates of a 3D rectangular grid (X, Y, Z). The grid
% vectors xgv,ygv,zgv form the columns of X, rows of Y, and pages of Z
% respectively. (X,Y,Z) are of size numel(ygv)-by-numel(xgv)-by(numel(zgv).
%
% [X,Y] = MESHGRID(gv) is equivalent to [X,Y] = MESHGRID(gv,gv).
% [X,Y,Z] = MESHGRID(gv) is equivalent to [X,Y,Z] = MESHGRID(gv,gv,gv).
%
% The coordinate arrays are typically used for the evaluation of functions
% of two or three variables and for surface and volumetric plots.
%
% MESHGRID and NDGRID are similar, though MESHGRID is restricted to 2-D
% and 3-D while NDGRID supports 1-D to N-D. In 2-D and 3-D the coordinates
% output by each function are the same, the difference is the shape of the
% output arrays. For grid vectors xgv, ygv and zgv of length M, N and P
% respectively, NDGRID(xgv, ygv) will output arrays of size M-by-N while
% MESHGRID(xgv, ygv) outputs arrays of size N-by-M. Similarly,
% NDGRID(xgv, ygv, zgv) will output arrays of size M-by-N-by-P while
% MESHGRID(xgv, ygv, zgv) outputs arrays of size N-by-M-by-P.
%
% Example: Evaluate the function x*exp(-x^2-y^2)
% over the range -2 < x < 2, -4 < y < 4,
%
% [X,Y] = meshgrid(-2:.2:2, -4:.4:4);
% Z = X .* exp(-X.^2 - Y.^2);
% surf(X,Y,Z)
%
%
% Class support for inputs xgv,ygv,zgv:
% float: double, single
% integer: uint8, int8, uint16, int16, uint32, int32, uint64, int64
%
% See also SURF, SLICE, NDGRID.
% Copyright 1984-2013 The MathWorks, Inc.
if nargin==0 || (nargin > 1 && nargout > nargin)
error(message('MATLAB:meshgrid:NotEnoughInputs'));
end
if nargin == 2 || (nargin == 1 && nargout < 3) % 2-D array case
if nargin == 1
y = x;
end
if isempty(x) || isempty(y)
xx = zeros(0,class(x));
yy = zeros(0,class(y));
else
xrow = full(x(:)).'; % Make sure x is a full row vector.
ycol = full(y(:)); % Make sure y is a full column vector.
xx = repmat(xrow,size(ycol));
yy = repmat(ycol,size(xrow));
end
else % 3-D array case
if nargin == 1
y = x;
z = x;
end
if isempty(x) || isempty(y) || isempty(z)
xx = zeros(0,class(x));
yy = zeros(0,class(y));
zz = zeros(0,class(z));
else
nx = numel(x);
ny = numel(y);
nz = numel(z);
xx = reshape(full(x),[1 nx 1]); % Make sure x is a full row vector.
yy = reshape(full(y),[ny 1 1]); % Make sure y is a full column vector.
zz = reshape(full(z),[1 1 nz]); % Make sure z is a full page vector.
xx = repmat(xx, ny, 1, nz);
yy = repmat(yy, 1, nx, nz);
zz = repmat(zz, ny, nx, 1);
end
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

死猪脑”能复活吗?---评美国耶鲁大学医学院实验研究

来源&#xff1a;科学网博客4月17日&#xff0c;英国《自然》杂志刊发了科学家对于“复活”死猪脑的尝试&#xff1a;美国耶鲁大学医学院的研究团队将已经死亡4小时的猪脑接入新开发的BrainEX体外灌注系统&#xff0c;用正常体温下的模拟脉动血流进行灌注。6个小时灌注期内&…

Android开发(六)——组件颜色Selector(Selector与Shape的基本用法 )

andorid控件改变状态时改变颜色&#xff0c;使用selector。 <?xml version"1.0" encoding"utf-8" ?> <selector xmlns:android"http://schemas.android.com/apk/res/android"><!-- 默认时的背景图片--><item android:dra…

22页PPT告诉你5G产业最新投资机会!

来源&#xff1a;全球物联网观察随着5G与下游产业联动和协作相继深入&#xff0c;十万亿级规模5G大生态终将形成。5G产业链将推动四大变革&#xff1a;软件化、超高频大宽带、物联网化、高集成度。同时&#xff0c;5G也将成就边缘计算&#xff0c;进而推动云计算市场加速发展。…

报告解读 | 实现智能制造的五大关键环节和四大赋能路径

来源&#xff1a;阿里研究院近年来&#xff0c;随着大数据、云计算、人工智能、工业互联网等技术的迅速发展&#xff0c;数字化技术被广泛应用于经济的各个环节&#xff0c;推动了新消费时代的到来。个性化、定制化的消费观越来越普遍&#xff0c;重塑了生产者和消费者之间的关…

[转载] 一致性哈希

转载自http://www.jiacheo.org/blog/174 学习分布式, 一致性哈希是最最基础的知识, 所以要理解好. 那什么是一致性哈希呢?(what) 百度百科 上的解释很专业术语. 要一句话定义貌似也有难度: 一致性哈希算法是在哈希算法基础上&#xff0c;提出的在动态变化的分布式环境中&#…

NB-IoT,你真是太让我失望了

来源&#xff1a;EET电子工程专辑摘要&#xff1a;根据IHS Markit预测&#xff0c;2019年&#xff0c;在所有低功耗广域网公用网络中&#xff0c;超过40%都有望使用基于LoRa的设备&#xff0c;这意味着LoRa有望在今年成为主导型的LPWAN解决方案。那么“老对手”NB-IoT呢?“NB-…

深度学习详解

来源&#xff1a;传感器技术人工智能&#xff0c;就像长生不老和星际漫游一样&#xff0c;是人类最美好的梦想之一。虽然计算机技术已经取得了长足的进步&#xff0c;但是到目前为止&#xff0c;还没有一台电脑能产生“自我”的意识。但是自 2006 年以来&#xff0c;机器学习领…

Nature今发表脑机接口领域重大突破:

来源&#xff1a;学术经纬摘要&#xff1a;将计算机连通人脑&#xff0c;直接读取意识&#xff0c;这不是科幻。顶尖学术期刊《自然》刚刚在线发表的一项工作就在脑机接口领域向前迈出了一大步。加州大学旧金山分校&#xff08;UCSF&#xff09;的神经外科学家Edward Chang教授…

2019版中国数字经济发展与就业白皮书

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;云…

深入卷积神经网络背后的数学原理

来源&#xff1a;AI科技大本营摘要&#xff1a;在计算机神经视觉技术的发展过程中&#xff0c;卷积神经网络成为了其中的重要组成部分&#xff0c;本文对卷积神经网络的数学原理进行了介绍。文章包括四个主要内容&#xff1a;卷积、卷积层、池化层以及卷积神经网络中的反向传播…

Linux学习之如何在物理机上安装Linux发行版

Linux学习之如何在物理机上安装Linux发行版 第一步&#xff1a;制作系统安装盘 准备一个至少8GB的空白U盘。下载启动盘制作工具Rufus&#xff0c;下载链接&#xff1a;https://pan.baidu.com/s/1CU8oZJVyCgdwETI2VxJwxA 提取码&#xff1a;gwi1下载Linux发行版安装镜像&#…

jQuery Easy UI Accordion(可伸缩的面板)包

Accordion 可伸缩的面板组件。基于panel,示为以下的比率&#xff1a; <!doctype html> <html lang"en"><head><meta charset"UTF-8"><script type"text/javascript" src"easyui/jquery.min.js"></sc…

Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置

Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置 第一步&#xff1a;在PC机安装Ubuntu18.04LTS 具体安装步骤参见上一篇文章 第二步&#xff1a;安装arm-linux-gcc交叉编译环境 在终端中执行sudo mkdir /forlinx,新建名为forlinx的文件夹&#xff08;文件夹名可任意&…

报告解读 | 智能技术“核聚变”催生智能经济,将拉动十万亿市场

来源&#xff1a;阿里研究院从IT时代、互联网到智能2019年政府工作报告&#xff0c;正式提出了“智能”战略&#xff1a;“深化大数据、人工智能等研发应用。打造工业互联网平台&#xff0c;拓展‘智能’&#xff0c;为制造业转型升级赋能。”以5G、物联网、人工智能等技术为代…

Linux学习之云服务器搭建嵌入式Linux开发环境

Linux学习之云服务器搭建嵌入式Linux开发环境 第一步&#xff1a;购买云服务器 进入腾讯云官方网站腾讯云官方网站 选择云校园云校园 进入控制台 将云服务器系统设置为Ubuntu系统 使用Xshell6登录云服务器 使用Xftp6进行文件的上传与下载 在云服务器安装arm-linux-gcc…

JS中toFixed()方法的问题及解决方案

最近发现JS当中toFixed()方法存在一些问题&#xff0c;采用原生的Number对象的原型对象上的toFixed()方法时&#xff0c;规则并不是所谓的“四舍五入”或者是“四舍六入五成双”&#xff0c;所谓“四舍六入五成双”&#xff0c;在百度百科上给的解释是&#xff1a;也即“4舍6入…

AI的阿基里斯之踵:模糊性

来源&#xff1a;IEEE电气电子工程师学会摘要&#xff1a;网罗全球科技前沿动态&#xff0c;为科研创业打开脑洞。很多年前&#xff0c;我和一位朋友去参观一个果园。他的儿子是这个果园的经理&#xff0c;向我们介绍了其工作。我的这位朋友和我都是工程师&#xff0c;开始讨论…

哈勃望远镜进一步确认宇宙在加速膨胀

来源&#xff1a;新华社美国哈勃太空望远镜的新观测成果进一步确认了宇宙在加速膨胀&#xff0c;现在的膨胀速度比根据早期宇宙特征预测的膨胀速度快大约9%。此次研究成果25日发表在美国《天体物理学杂志》上。研究人员利用新方法对大麦哲伦星云的70颗造父变星进行了观测。有“…

Git的安装和配置

Git的安装和配置 一、下载并安装git git下载地址 所有均选择默认值&#xff0c;一路NEXT 二、下载并安装tortoisegit 所有均选择默认值&#xff0c;一路NEXT 三、新建GitHub存储库 1.打开github官方网站&#xff0c;注册账号 2.登录后点击绿色NEW按钮 3.进入如图所示&am…