永发信息网

谁能告诉我matlab程序里的这句mesh(X,Y,Z(:,:,3))是什么意思?

答案:3  悬赏:20  手机版
解决时间 2021-03-23 02:33
  • 提问者网友:嗝是迷路的屁
  • 2021-03-22 07:56
谁能告诉我matlab程序里的这句mesh(X,Y,Z(:,:,3))是什么意思?
最佳答案
  • 五星知识达人网友:污到你湿
  • 2021-03-22 08:20
z是x和y的函数。一般来说x和y是N*N的,而你这里的

必然z是一个N*N*M的三维矩阵,因而直接mesh(x,y,z)肯定是错误的,matlab的mesh
函数要求x,y,z的size是一样的。因此只能用类似mesh(x,y,z(:,:,i))来进行作图,如果写成循环的话,还能做成动画。例如
for i = 1:M
mesh(x,y,z(:,:,i));
pause(0.01);
end
全部回答
  • 1楼网友:酒者煙囻
  • 2021-03-22 09:05
在数学上,函数z=f(x,y)的图形是三位的空间曲面,在MATLAB中。总是假设函数z=f(x,y)定义在一个矩形D的区域上。为了绘制在区域D上的三位曲面,MATLAB的方法是首先将[x0,xm]在x方向上分成m份,将在[y0,yn]y方向上分成n份,由各分划点分别作平行于坐标轴的直线,将区域D分成m×n个小矩形,计算出网点的函数值。对于每个小矩形,在空间中央决定四个点(xi,yi,f(xi,yi)),连接四个点得到一个空间的四边形片。而所有这些四边形片连在一起构成函数z=f(x,y)定义在区域D上的空间网格曲面。

在用mesh画二元函数图像前必须进行一个“预处理”——生成笛卡尔乘积空间。

例子
%要画z=x^2+y^2在[-5,5]×[-5,5]的图像。
%首先定义
x=-5:.1:5;y=x;
%然后要生成一个笛卡尔乘积的空间
[X,Y]=meshgrid(x,y);
%然后再是
Z=X.^2+Y.^2;
%最后画的是
mesh(X,Y,Z);
  • 2楼网友:归鹤鸣
  • 2021-03-22 08:38
mesh函数中x是一个(N维)向量表示在x轴方向的选取的所有格点值。相应的,y也是一个(N维)向量表示在y轴方向的选取的所有格点值。第三个输入z应该是一个N乘N的方阵,代表在这个曲面上对应某个(x,y)的z值。但是在你的程序中,Z并不是一个N乘N的方阵,而是一个N乘N乘m(根据程序,你应该知道m是多少)的一个立方矩阵。由于维度不相符,所以我们不能直接用mesh(x,y,Z),而是要选择Z的某一层数据,比如这里选的是第三层(即m=3),使得mesh命令中的第三个输入是个符合要求的N乘N的方阵,而不是一个N乘N乘m的立方矩阵。所以,将3换成2或者1都是可以的,只是取决于你想画Z的哪一层的数据了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯