Matlab meshgrid 绘制二维网格
最近要用matlab画二维网格,网上查阅和实践后,做一下总结。
一、利用meshgrid绘制二维网格的正确做法
xtick = linspace(10,20,51);
ytick = linspace(0,2*pi,21);
[X,Y] = meshgrid(xtick,ytick);
plot(X, Y, 'k', X', Y', 'k');
axis([10 20 0 2*pi]);
绘图结果如下:
到这儿就结束了。接下来的内容是我走过的坑和原因分析,不感兴趣的可以直接跳过。
二、错误示例
一开始经过网上搜索,发现有二维网格绘制的相关例子,一个简单例子如下:
xtick = linspace(0,10,21);
ytick = linspace(0,10,21);
[X,Y] = meshgrid(xtick,ytick);
plot(X,Y,'k',Y,X,'k');
绘图如下:
一看就是我想要的图,直接根据这个例子,开始动手:
xtick = linspace(10,20,51);
ytick = linspace(0,2*pi,21);
[X,Y] = meshgrid(xtick,ytick);
plot(X, Y, 'k', Y, X, 'k');
画出来是这样的,傻眼了。。。网格没有画到一起,和我想的不一样。。。
经过仔细研究meshgrid这个函数的输出,以及画出来的图,又重新修改了程序,如第一部分的正确示例所示(只有plot命令做了修改)。
三、原因
首先研究一下Meshgrid的输入输出
直接截取官方说明:
[
X,
Y] = meshgrid(x,
y)
基于向量 x
和 y
中包含的坐标返回二维网格坐标。X
是一个矩阵,每一行是 x
的一个副本;Y
也是一个矩阵,每一列是 y
的一个副本。坐标 X
和 Y
表示的网格有 length(y)
个行和 length(x)
个列。
举个官方的例子:
x=1:3;
y=1:5;
[X,Y]=meshgrid(x,y);
输出X,Y看看长什么样
先plot(X,Y),查看是如何画图的,如下图:有三条竖直线,分别是x=1,x=2和x=3。其画图次序为:X第1列和Y的第1列(红线),X第2列和Y第2列(绿线),以及X第3列和Y的第3列(蓝线)。
接着plot(Y,X), 继续查看绘图情况,如下图:有三条水平线,分别是y=1,y=2和y=3。其画图次序为:Y第1列和X的第1列(红线),Y第2列和X第2列(绿线),以及Y第3列和X的第3列(蓝线)。
可以发现,利用plot命令画矩阵时,它会按照对应列进行绘图。且,第一个矩阵会作为横坐标值、第二个矩阵作为纵坐标值进行绘图。
接着我们再研究一下,如何在plot(X,Y)的基础上继续把我们想要的水平线画上,即y=1,y=2,…,y=5。
先看一下下图中的y=1的水平线,其坐标点分别为(1,1),(2,1)和(3,1),这三个坐标值分别对应X矩阵的第1行和Y矩阵的第1行。这样我们就可以把X和Y矩阵转置再plot(X',Y')就可以得到5条水平线。
最后,plot(X,Y,'k',X',Y','k');可以得到下图。
总结:出错的原因在于没有真正理解用plot命令画两个矩阵时程序是如何执行的。
注:如果横坐标和纵坐标的坐标范围和格点步长是一样的,那么X’和Y是相同的,Y’和X是相同的,所以用plot(X,Y,'k',Y,X,'k')不会出现问题。
看来还是不能偷懒-_-!
(原创-转载请注明出处)
参考:
https://ww2.mathworks.cn/help/matlab/ref/meshgrid.html
https://blog.csdn.net/zhanghanqmx/article/details/121891071
Matlab meshgrid 绘制二维网格相关推荐
- 利用MATLAB来绘制二维随机变量的联合概率密度图像
本文档通过MATLAB来绘制二维随机变量(X,Y)的联合概率密度函数. 第一种类型,X服从标准正态分布,Y服从均匀分布. [例题]已知随机变量X与Y相互独立,X~N(0,1);Y在区间[0,2]上服从 ...
- matlab中饼图绘制程序,MATLAB中绘制二维饼图的函数是(? ? ) (1.5分)
MATLAB中绘制二维饼图的函数是(? ? ) (1.5分) 答:pie 计算机的内存储器比外存储器读写速度 ______ 答:快 新民主主义革命时期,提出了反帝反封建这个任务就等于真正懂得了什么叫反 ...
- qt绘制二维网格_【史上最全轴承结构化网格划分系列】第四弹——滑动球面轴承(文末附模型领取方式)...
点击上方蓝字关注我们! 一.结构化网格划分思路 1.检查模型 1)观察模型(是否为对称模型,是否需要采用壳/线单元)2)简化模型(去除非关键位置圆角,去除破面与多余线体)2.绘制引导面网格1)切分实体 ...
- matlab contourf设置范围,如何使用matlab contourf绘制二维决策边界
我知道这已经有一段时间了,但我会试一试,以防其他人提出这个问题. 假设我们有一个2D训练集来训练SVM模型,换句话说特征空间是一个2D空间.我们知道,一个核SVM模型导致得分(或决定)的形式的函数: ...
- matlab绘制y3=e (-x),MATLAB图形绘制-二维配套实验
实验五 MATLAB 绘图-二维 1.在同一坐标系下绘制下面三个函数在t ∈[0,4π]的图象. ) sin(41.0321t e y t y t y t -===π 注意此处的sin (t )前面需 ...
- 【MATLAB】三维图形绘制 ( 三维平面图 | 二维网格 | meshgrid 函数 | 绘制网格 | mesh 函授 | 绘制平面 | surf 函数 | 绘制等高线 | contour 函数 )
文章目录 一.二维网格 1.线图 与 平面图 2.meshgrid 函数生成二维网格 二.绘制网格 1.mesh 函数绘制网格 2.代码示例 三.绘制平面 1.surf 函数绘制平面 2.代码示例 四 ...
- matlab 如何画二维图形,Matlab 学习 画图篇 一 二维图形
matlab给绘制二维图形提供了很多的函数,把一些绘制二维图形的基本函数做成一张表,如下图所示: 我就按照表的顺序一一记录一些个函数的简略用法. 首先是 1.plot函数 plot函数有很多重载方法, ...
- matlab画图总结——二维图plot函数、图形标注和坐标轴控制、饼图、条形图、排列图;三维图的绘制
Matlab画图总结 1. 二维数据曲线图 1.1 绘制二维曲线的基本函数 1.plot()函数 2. 含多个输入参数的plot函数 3. 含选项的plot函数 4. 双纵坐标函数plotyy 1.2 ...
- MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图
本篇博文记录使用MATLAB绘制二维高斯函数的三维图. 用到的MATLAB函数--mesh()(绘制三维线框图)和surf()(绘制三维表面图). MATLAB命令窗口输入>> doc 函 ...
最新文章
- ListView滑动位置精准记忆
- python二进制转字符串
- 鬲融:从唐山走出的国际杰出青年学者
- mysql创建表并初始化_MainSetup初始化进行创建表(mysql)失败
- 最全攻略:利用LightSeq加速你的深度学习模型
- 运维 如何选择最合适的服务器方案(一):服务器硬件配置
- 衡量计算机主机性能的指标,计算机性能
- 利用HTML完成登陆界面设计
- PHP格式化数组输出样式
- nova7系列,nova的深耕之役
- ATH9K Driver Learning Part VII: Transmission Tasklet and Interrupts
- kafka消费策略 随笔
- 消消乐要求 c语言程序,C++语言实现开心消消乐
- 巅峰极客2022初赛 部分题解
- Jenkins部署Git项目
- xib报错“nib must contain exactly one top level object which must be a UITableViewCell instance”
- 看了这4点,shopee店铺出单从此变简单
- 回归问题-逐步回归(Stepwise Regression)
- Sass快速入门笔记(将主要知识点截取出来,参考官方文档和一些网络教学视频)
- 新型勒索软件PYSA浅析,又要如何防御??
热门文章
- Unity3d导入图片自动修改TextureType为Sprite(2D and UI)及设置Packing Tag为文件夹名。
- 精准医学:新型甲基化DNA标志物在大肠癌复发监测中的应用|复发预防专题
- php怎么比较数组长度_php获取数组长度的方法(有实例)
- 无障碍-语音反馈TalkBack
- 区块链开发之Solidity智能合约开发
- CVPR 2020 论文大盘点-动作识别篇
- matlab小信号分析,小信号分析法重点笔记.doc
- tui-image-editor 图片编辑功能
- 计算机一些常用的英语作文,英语写作时必背的一些常用句型
- 经营理发店的3大关键,你知道吗?