图像处理之matlab中meshgrid函数用法详解

一、meshgrid()函数基本调用格式

meshgrid函数用来生成网格矩阵,既可以是二维网格矩阵,又可以是三维网格矩阵。

1、[X,Y] = meshgrid(x,y) :基于向量x和y中包含的坐标返回二维网格坐标。X是一个矩阵,每一行是x的一个副本,Y也是一个矩阵,每一列是y的一个副本。坐标X和Y表示的网格有length(y)个行和length(x)个列。

2 、[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x)相同,返回网格大小为length(x)*length(x)的方形网格矩阵。

3、 [X,Y,Z] = meshgrid(x,y,z),返回由向量x,y,z定义的三维网格坐标,X,Y和Z表示的网格大小为length(x)*length(y)*length(z)。

二、meshgrid()函数应用实例

(1)[X,Y] = meshgrid(x,y)

>> m=1:5;
>> n=2:7;
>> [A,B]=meshgrid(m,n)

运行结果:

A是一个6*5矩阵, B 是一个 6 * 5矩阵,注意A的行是m的值,B的列是n的值。

A =

     1     2     3     4     5
     1     2     3     4     5
     1     2     3     4     5
     1     2     3     4     5
     1     2     3     4     5
     1     2     3     4     5
B =

     2     2     2     2     2
     3     3     3     3     3
     4     4     4     4     4
     5     5     5     5     5
     6     6     6     6     6
     7     7     7     7     7

即A中的每个点对应的是x轴的坐标点,B中的每个点对应的是y轴的坐标点,即有(1,2),(2,2),(3,2),(4,2),(5,2),…,(1,7),(2,7),(3,7),(4,7),(5,7)。

(2)[X,Y] = meshgrid(x)

>> m=1:3;
>> [A,B]=meshgrid(m)

注意[A,B]=meshgrid(m)d等同于[A,B]=meshgrid(m,m)。
运行结果:

A =

     1     2     3
     1     2     3
     1     2     3
B =

     1     1     1
     2     2     2
     3     3     3

(3)[X,Y,Z] = meshgrid(x,y,z)

>>x = 0:2:6;
>>y = 0:1:6;
>>z = 0:3:6;
>>[X,Y,Z] = meshgrid(x,y,z)

运行结果:

X(:,:,1) =

     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
X(:,:,2) =

     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
X(:,:,3) =

     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
     0     2     4     6
Y(:,:,1) =

     0     0     0     0
     1     1     1     1
     2     2     2     2
     3     3     3     3
     4     4     4     4
     5     5     5     5
     6     6     6     6
Y(:,:,2) =

     0     0     0     0
     1     1     1     1
     2     2     2     2
     3     3     3     3
     4     4     4     4
     5     5     5     5
     6     6     6     6
Y(:,:,3) =

     0     0     0     0
     1     1     1     1
     2     2     2     2
     3     3     3     3
     4     4     4     4
     5     5     5     5
     6     6     6     6


Z(:,:,1) =

     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0
     0     0     0     0
Z(:,:,2) =

     3     3     3     3
     3     3     3     3
     3     3     3     3
     3     3     3     3
     3     3     3     3
     3     3     3     3
     3     3     3     3
Z(:,:,3) =

     6     6     6     6
     6     6     6     6
     6     6     6     6
     6     6     6     6
     6     6     6     6
     6     6     6     6
     6     6     6     6

(4)在二维网格上画图

[x,y] = meshgrid(1:0.5:10,1:20);  
z = sin(x) + cos(y);
surf(x,y,z);  % surf() 函数用于绘制三维阴影曲面图

运行效果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44111805/article/details/126273214