matlab meshgrid有什么用?mesh之前必须用吗?

那meshgrid究竟有什么用呢?
2025-03-01 05:54:31
推荐回答(5个)
回答1:

meshgrid生成网格矩阵,并非mesh之前必须的。

举例:

下面我们绘制sin(r)/r函数的图形.建立图形用以下方法:

x=-8:.5:8;

y=x';

x=ones(size(y))*x;

y=y*ones(size(y))';

R=sqrt(x.^2+y.^2)+eps;

z=sin(R)./R;

mesh(z)

各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵Z.用mesh函数即可以得到图形.

上面的前四行可以用[x, y]=meshgrid(-8:0.5:8)来代替,这就是meshgrid的作用。

回答2:

不一定,meshgrid只是将图像网格化,其实mesh命令就能实现你要的图像

meshgrid可以对坐标范围进行设置
下面是matlab的解释
For example, to evaluate the function x*exp(-x^2-y^2) over the
range -2 < x < 2, -2 < y < 2,

[X,Y] = meshgrid(-2:.2:2, -2:.2:2);
Z = X .* exp(-X.^2 - Y.^2);
mesh(Z)

回答3:

meshgrid 的使用方法:
[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,这两个矩阵可以用来表示mesh和surf的三维空间点以及两个变量的赋值。其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。

详细解释:help meshgrid

meshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是相同的。它也可以是更高维的。

[A,B]=Meshgrid(a,b)
生成size(b)Xsize(a)大小的矩阵A和B。它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列。因此命令等效于:

A=ones(size(b))*a;
B=b'*ones(size(a))

如下所示:

>> a=[1:2]

a =

1 2

>> b=[3:5]

b =

3 4 5

>> [A,B]=meshgrid(a,b)

A =

1 2
1 2
1 2

B =

3 3
4 4
5 5

>> [B,A]=meshgrid(b,a)

B =

3 4 5
3 4 5

A =

1 1 1
2 2 2

不是在mesh前面必须使用的

回答4:

如果不进行网格定义的话是不是默认的按照1为网格的步长呢?

回答5:

2楼的回答很好,谢谢,我看明白了