- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab中meshgrid 函数的用法
?matlab中 meshgrid 函数的用法
分类:?MATLAB学习2014-06-20 21:56?1351人阅读?评论(0)?收藏?举报目录(?)[+]
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
plot3(x1,y1,z1,x2,y2,z2,…,xn,yn,zn):例:t=0:0.1:1;x=sin(t);y=cos(t);z=t;plot3(x,y,z)可绘n条线;plot函数也可化多条线surf(x,y,z)或mesh(x,y,z):绘制三维曲面的网格图或表面图,surfc()和surfl()分别绘制带有等高线和光照下的三维曲面,meshc()和meshz()也有不同效果
contour(peaks);当然你也可以定义等高线的条数,如contour(peaks,8)表示8条等值线;可以定义等高线的值v=[0 2 3 4];contour(peaks,v)表示画值为0 2 3 4的等值线;可以标记等值线,[c,h] = contour(peaks); clabel(c,h);等等,help contour里面很全面的~
我们自己也可以测试一下:
在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)