如果我们的函数存在两个自变量z=f(x,y)
,那么我们可以利用三维图像来表示这个函数。如果我们的x
变量在x
轴上存在x1
,x2
,x3
......xn
个取值,y
变量在y
轴上有y1
,y2
,y3
......ym
个取值,在坐标系中构成了n x m
的网格。如果对于任意f(xi,yj)
要在Matlab中计算其对应的值z
,首先就是要构建两个m x n
的网格,其中一个包含所有可能的x
值,一个包含所有可能的y
值。这两个网格看起来应该像这样:
x1, x2, x3, ... xn
x1, x2, x3, ... xn
x1, x2, x3, ... xn
x1, x2, x3, ... xn
x1, x2, x3, ... xn
.
.
x1, x2, x3, ... xn
y1, y1, y1, ... y1
y2, y2, y2, ... y2
y3, y3, y3, ... y3
y4, y4, y4, ... y4
y5, y5, y5, ... y5
.
.
ym, ym, ym, ... ym
这样,在任意的(i, j)
坐标,就可以得到xi
和yj
。在Matlab中,meshgrid
函数用于产生上述两个矩阵。
[x y] = meshgrid(xgv, ygv)
上述xgv
就是x1
,x2
,...xn
向量,ygv
就是y1
,y2
,y3
...ym
向量。x
和y
就是上述两个矩阵。下面展示一个小例子:
xgv = [0:0.01:1];
ygv = 1:10;
[x,y] = meshgrid(xgv,ygv);
z= x.^y;
surf(x,y,z);
得到的三维图像为: