我在matlab7.0编辑窗口输入: 【X,Y】=matlab meshgridd(-2:.2:2); z=x.*exp(-x.^2-y.^2); mesh(x,y,z) 为啥出来

小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
x^2+3*y+e^z=0怎么画Z关于X,Y的三维图,求指教
x^2+3*y+e^z=0怎么画Z关于X,Y的三维图,求指教
研究生必备与500万研究生在线互动!
扫描下载送金币对MATLAB中meshgrid的理解
备注: 这些内容是我在阅读了meshgrid源代码及看了这个帖子之后的总结。
函数功能:
生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时,
往往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3-D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x,
例如, 要在“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);
在matlab中我们可以这样描述这个坐标矩阵:
把各个点的x坐标独立出来,得:
再把各个点的y坐标也独立出来:
这样对应的x、y结合,便表示了上面的坐标矩阵。
meshgrid就是产生这样两个矩阵,来简化我们的操作。
然后根据(x, y)计算获得z,并绘制出三维图形。
在Matlab命令窗口中键入type meshgrid可以查看该函数的源代码(由此可以理解meshgrid的算法思想), 键入doc
meshgrid或者help meshgrid可以获得帮助文档。
语法格式:
[X,Y] = meshgrid(x,y)
上面的描述,我们可以知道,meshgrid返回的两个矩阵X、Y必定是行数、列数相等的,且X、Y的行数都等于输入参数y中元素的总个数,X、Y的列数都等于输入参数x中元素总个数(这个结论可以通过查看meshgrid的源代码得到,可以通过示例程序得到验证)。
[X,Y] = meshgrid(x)
[X,Y,Z] = meshgrid(x,y,z)
程序示例:
x = [3, 4, 5]
y = [6; 7; 8; 9]
[xx, yy] = meshgrid(x, y)
x = [3, 4, 5];
y = [6; 7; 8; 9];
[yy, xx] = meshgrid(y, x)
输出结果:
function main
function M1
&&& x = rand(3,
&&& y = rand(2,
&&& size_of_x =
&&& size_of_y =
&&& [X, Y] =
meshgrid(x, y);
&&& size_of_X =
&&& size_of_Y =
function M2
&&& x = rand(3,
&&& y = rand(2,
&&& size_of_x =
&&& size_of_y =
&&& [X, Y] =
meshgrid(x, y);
&&& size_of_X =
&&& size_of_Y =
输出结果:
size_of_x =
size_of_y =
size_of_X =
size_of_Y =
size_of_x =
size_of_y =
size_of_X =
size_of_Y =
最后, 说一下通过阅读meshgrid的源代码复习一下以前的一些下标操作知识:
&& x = [1 2 3 4]
&& x([1 1 1 1],:)
就是把x中第1行复制4份。
如果,这个例子不明显,再看个例子:
&& x = [1 2 3 4 5;
6 7 8 9 10;
11 12 13 14 15;
16 17 18 19 20]
&& x([4 2], :) % 依次取出x的第4行和第2行
&& x([4 3 2 1], :) % 按行倒置
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。z=x^2* e(-x^2-y^2)在matlab中如何表示_百度知道
z=x^2* e(-x^2-y^2)在matlab中如何表示
Z=(X:0,而且画图显示了x=-4,y););%Z可以表示为这样的式子mesh(X;y&#39.^2);title(&#39,给你做出来了;ylabel(&#39.^2-Y.^2);xlabel('y=x,Z)代码如下;)希望楼主五星采纳.*exp(-X:4.01;),Y]=meshgrid(x;[X;z的图像&#39,Y;x&#39
其他类似问题
为您推荐:
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁4565人阅读
MATLAB学习(1)
grid是MATLAB中用于生成网格的函数。在使用MATLAB进行3-D图形绘制方面有着广泛的应用。
生成绘制3-D图形所需的。在计算机中进行绘图操作时, 往往需要一些,然后根据这些采样点来绘制出整个图形。在进行3-D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x,
例如, 要在“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坐标独立出来,得:
可以把这个矩阵设为X~~
再把各个点的y坐标也独立出来:
可以把这个矩阵设为Y~~
这样对应的x、y结合,便表示了上面的坐标。grid就是产生这样两个,来简化我们的操作。然后根据(x,
y)计算获得z,并绘制出三维图形。
[X,Y] =&grid(x,y) & &//
这个语句是用的最多的语句
上面的描述,我们可以知道,grid返回的两个X、Y必定是行数、列数相等的(即X、Y两个矩阵都有相同的行数,和相同的列数)
且X、Y的行数都等于输入参数y中元素的总个数,X、Y的列数都等于输入参数x中元素总个数(这个结论可以通过查看grid的源代码得到,可以通过示例程序得到验证)。(我们自己也可以体会到)
[X,Y]=grid(x)与[X,Y]=grid(x,x)是等同的
[X,Y,Z]=grid(x,y,z)生成三维,可用来计算三的函数和绘制三维立体图
相关函数: plot3、、、automesh、
我们自己也可以测试一下:
在MATLAB命令行中,输入一下内容~
x = rand(3, 4);
& & & &y = rand(2, 3);
& & & [X, Y] = meshgrid(x, y)
回车后,会产生如下数据:
& & 0.4039 & &0.9421 & &0.0598 & &0.8212
& & 0.0965 & &0.9561 & &0.2348 & &0.0154
& & 0.1320 & &0.5752 & &0.3532 & &0.0430
& & 0.1690 & &0.7317 & &0.4509
& & 0.6491 & &0.6477 & &0.5470
& & 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.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.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.1690 & &0.1690 & &0.1690 & &0.1690 & &0.1690 & &0.1690 & &0.1690 & &0.1690 & &0.1690 & &0.1690 & &0.1690 & &0.1690
& & 0.6491 & &0.6491 & &0.6491 & &0.6491 & &0.6491 & &0.6491 & &0.6491 & &0.6491 & &0.6491 & &0.6491 & &0.6491 & &0.6491
& & 0.7317 & &0.7317 & &0.7317 & &0.7317 & &0.7317 & &0.7317 & &0.7317 & &0.7317 & &0.7317 & &0.7317 & &0.7317 & &0.7317
& & 0.6477 & &0.6477 & &0.6477 & &0.6477 & &0.6477 & &0.6477 & &0.6477 & &0.6477 & &0.6477 & &0.6477 & &0.6477 & &0.6477
& & 0.4509 & &0.4509 & &0.4509 & &0.4509 & &0.4509 & &0.4509 & &0.4509 & &0.4509 & &0.4509 & &0.4509 & &0.4509 & &0.4509
& & 0.5470 & &0.5470 & &0.5470 & &0.5470 & &0.5470 & &0.5470 & &0.5470 & &0.5470 & &0.5470 & &0.5470 & &0.5470 & &0.5470
因为rand(3, 4)会自动生成一个3行4列的矩阵,且矩阵中的元素大小在0~1之间
3)会自动生成一个2行3列的矩阵,且矩阵中的元素大小在0~1之间~~
这样就相当于x轴有3*4即有12个元素,y轴有6个元素,
所以,在调用meshgrid时,X、Y矩阵会有6行12列,
在XOY平面,会产生
72 个点。。。
[X,Y]=meshgrid(-4:0.5:22,-11:0.5:10);
调用这个语句时,X轴方向会有26*2=52个点
Y轴方向会有21*2=42个点,&
所以,我们绘制的三维图像网格中,会有52*42=2184个点
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:569242次
积分:7113
积分:7113
排名:第2021名
原创:148篇
转载:295篇
评论:39条
(1)(4)(1)(2)(8)(13)(5)(11)(20)(12)(17)(60)(29)(63)(18)(43)(89)(37)(10)

我要回帖

更多关于 exp x2 的文章

 

随机推荐