问Matlab中mesh(x,y,z)的问题

2021-02-26 09:43:48 字数 1720 阅读 7233

1楼:匿名用户

用mesh画三维图,先要meshgrid,就是将xoy平面用你定义的x,y向量

网格化,之后对每一个得到内

的点求其对应的函数

容值,最后用mesh将函数图像做出来,你如果还有不清楚的地方,可以在***mand window 下敲“doc mesh”或是“doc meshgrid”..

还有,你**中定义的z是向量,不是矩阵。

下面是改过的**

clear;

x=-10:.02:10;

y=x;

z=(x-2).^2+(y-1.2).^2;

subplot(1,2,1);

plot3(x,y,z);

grid on;

subplot(1,2,2);

[xx,yy]=meshgrid(x,y);

zz=(xx-2).^2+(yy-1.2).^2;

mesh(xx,yy,zz);

祝好!!!

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

2楼:匿名用户

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

3楼:

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的哪一层的数据了。

4楼:流星日食

在数学上,函数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);

matlab中全排列的问题,matlab中全排列的问题 10

1楼 功诚蹉燕 perms 产生所有可能的排列语法p perms v p perms v ,这里v是一个长度为n的行向量,此函数产生v中这n个元素的全排列矩阵,每行为一个排列。矩阵p包含有n! 2楼 真 clear clc n 4 m 3 x nchoosek 1 n m y cell2mat ar...

matlab全排列问题,matlab中全排列的问题 10

1楼 匿名用户 用笨办法直接编程的 不知道有没有现成的函数 你可以再查一下 数组b就是你要求的结果 a 1 2 3 4 e 1 for i 1 4 for j 1 4 for l 1 4 b e a i 100 a j 10 a l e e 1 endend endb matlab中全排列的问题 1...

matlab中二次规划的问题,matlab中二次规划的问题 100

1楼 匿名用户 没有上下文,只给这么个 片段,除非碰巧有熟悉这段 的,否则,绝大多数人没办法帮你。 matlab二次规划问题 2楼 兔子和小强 这个优化目标不是二次型 约束也不是线性约束,无法用quadprog求解,可以考虑用fmincon来解。 新建个mycon m文件,里面的内容是 functi...