matlab中的meshgrid命令应该怎么用

来源:趣味经验馆 2.58W

meshgrid 函数用来生成网格矩阵,可以是二维网格矩阵。 exp1_1:生成二维网格,用法为:[x y]=meshgrid(a b); % a 和b是一维数组,如a=[1 2 3]; b= [2 3 4]; 则生成的 X 和 Y 都是为 3X3 维的矩阵, >> [x y]=meshgrid(a,b) x = 1 2 3 1 2 3 1 2

meshgrid是MATLAB中用于生成网格采样点的函数。在使用MATLAB进行3-D图形绘制方面以及画矢量图方面有着广泛的应用。

方法

如下图所示,该图画出了平面坐标上的12点。这12点的坐标很容易辨识出来,

下面以墨西哥草帽为例,说明meshgrid命令使用方法。 xi=-10:0.51:10;yi=-10:0.51:10; [x,y]=meshgrid(xi,yi); z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); mesh(x,y,z);

matlab中的meshgrid命令应该怎么用

启动matlab,主界面如图所示,在命令窗口输入以下代码。可以看到该命令输出了两个矩阵分别是x与y。其中的x就是上图点的横坐标值,y就是点的纵坐标值。

meshgrid是生成网格空间; 由x、y坐标轴上的点生成平面的交叉点 如x是1、2、3;y是1、2、3; meshgrid后,就是9个交叉点,(1,1),(1,2),(1,3),(2,1),(2,2)

matlab中的meshgrid命令应该怎么用 第2张

正确的阅读顺序是从左到右,从上到下。对每个矩阵按照列来阅读,比如首先是x矩阵的第一列与y矩阵的第一列,取出它们的第一个元素就是点(0,0),取出第二个元素就是(0,1),依次是(0,2)、(0,3)。分别对应了上图的第一列点。后面的以此类推。

meshgrid(x,y)产生两个矩阵,第一个矩阵是由x作为行向量组成,第二个向量由y作为列向量组成 meshgrid(x,x)=meshgrid(x),即也产生两个矩阵。 比如 x=1:1:4,则x=[1 2 3 4] 那么生成的两个矩阵分别是 [1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4] 和 [1 1

matlab中的meshgrid命令应该怎么用 第3张

下面结合刚才所学,来画一个三维图形。代码如下图所示,首先在平面上产生一个从-2到2的区间。然后产生在该区间的z轴坐标值,最后画出该三维图形。

-8:.5:8表示产生-8到8之间一组间隔0.5的数 [a,b]=meshgrid(-8:.5:8),就表示x,y轴都是这些数组成的网格,即从一维扩充到二维了。 -8和8决定了图像的范围,0.5决定了曲面网格的大小或者说光滑程度

matlab中的meshgrid命令应该怎么用 第4张

最终得的图形如下所示。选择此处,还可以随意拖动,从不同角度观看该图形。

用mesh画三维图,先要meshgrid,就是将xoy平面用你定义的x,y向量网格化,之后对每一个得到的点求其对应的函数值,最后用mesh将函数图像做出来,你如果还有不清楚的地方,可以在command window 下敲“doc mesh”或是“doc meshgrid”。 meshz是绘制

matlab中的meshgrid命令应该怎么用 第5张

扩展阅读,以下内容您可能还感兴趣。

matlab中mesh和surf有什么区别

一、指代不同

1、mesh:指MESH equation平衡级分离过程的数学模型。

2、surf:是一个稳健的图像识别和描述百算法。

二、特点不同

1、mesh:各平衡级的每一组分物料度平衡方程、相平衡方程和各平衡级的组分分率归 一化方程、热平衡方程构成。

2、surf:法在适中的条件下完成两幅图像问中物体的匹配基本实现了实时处理,其快速的基础实际上只有一个积分图像haar求导。

三、用处不同

1、mesh:平衡级分离过程的数学模型,由各平衡级的每一组分答物回料平衡方 程(M方程)、相平衡方程和各平衡级的组分分率归 一化方程(S方程)、热平衡方程(H方程)构成。

2、surf:可被用于计算机视觉任务,如物件识别和3D重构。近似的2D 离散小波变换响应和并且有效地利用了积分图。

参考资料来答源:百度百科-MESH方程

参考资料来源:百度百科-Surf

matlab用meshgrid和surface画出函数

很明显,这是球面的方程。为避免使用直角坐来标表达会导致的多值问题,可用球面坐标生源成数据,然后再转换到直角坐标。w未给定,任取一个值zd。

 

参考代码:

w = 5;

r = sqrt(w);

n = 30;

theta = (-n:2:n)/n * pi;

phi = (-n:2:n)/n * pi/2;

[theta,phi] = meshgrid(theta,phi);

cosphi = cos(phi); %cosphi(1) = 0; cosphi(n+1) = 0;

sintheta = sin(theta); %sintheta(1) = 0; sintheta(n+1) = 0;

x = r*cosphi.*cos(theta);

y = r*cosphi.*sintheta;

z = r*sin(phi);

surface(x,y,z)

view(3)

axis equal

grid on

matlab初学,生成MESH之前一般要先执行[xx,yy]=meshgrid(x,y)命令,然后

[xx,yy]=meshgrid(x,y)命令,是生成一个百平面网格坐标矩阵,可以得到平面网格坐标点,再利用度zz与xx,yy的二元函数关系,计算出第三维坐标zz,这样就可以内利用mesh(xx,yy,zz)命令画出三维立容体图了。至于字母的选择不一定用xx,yy,zz用别的也可以,如用大写字母X,Y,Z更简单。

meshgrid和ndgrid的区别及用法

问题讲的很详细,我就有信心解决了。呵呵!

其实,对于2D,3D使用meshgrid和ndgrid都可以,但要注意:

[X1,X2,X3] = NDGRID(x1,x2,x3)<=>[X2,X1,X3] = MESHGRID(x2,x1,x3)

即x和y轴要反向。为何呢?帮助说的很清楚:因为NDGRID适用于n维空间,而meshgrid适用于笛卡尔空间。

所以"ppt上特意写到必须用ndgrid"是不对的。

meshgrid和ndgrid的用法不同之处在于:2D、3D都可以使用(区别是x轴,y轴的转换),但对于4D、5D...只能e799bee5baa631333262363737使用ndgrid.

顺便回答一下你没问,但很多人问我的问题:为什么要使用meshgrid?

matlab使用矩阵的方式进行运算,对于2D而言,如果采样10个点(指x,y轴),那么对于x=第一个采样点,反映到矩阵就是10个,即不管y是哪个值,x的第一采样点保持不变;对y是同理。因此,2D产生的x和y都是两维矩阵。

最后给你一个实例,说明两者在这里是通用的:

x0=-3:.6:3;

y0=-2:.4:2;

[x,y]=ndgrid(x0,y0);

[Y,X]=meshgrid(y0,x0);

z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);

Z=(X.^2-2*X).*exp(-X.^2-Y.^2-X.*Y);

sp=csapi({x0,y0},z);

SP=csapi({x0,y0},Z);

subplot(221),fnplt(sp);

subplot(222),fnplt(SP);

matlab:meshgrid函数在三维绘图中的作用,举例说明

例如知z=(x^2+y^道2)^3, 其中专-1<=x<=1,-2<=y<=2 画曲属面

[x,y]=meshgrid(-1:0.01:1,-2:0.02:2);

z=(x.^2+y.^2).^3;

mesh(x,y,z)

热门标签