Matlab画三维图像

2017-06-17  本文已影响159人  学而时习之_不亦说乎

如果我们的函数存在两个自变量z=f(x,y),那么我们可以利用三维图像来表示这个函数。如果我们的x变量在x轴上存在x1x2x3......xn个取值,y变量在y轴上有y1y2y3......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)坐标,就可以得到xiyj。在Matlab中,meshgrid函数用于产生上述两个矩阵。

[x y] = meshgrid(xgv, ygv)

上述xgv就是x1,x2,...xn向量,ygv就是y1,y2,y3...ym向量。xy就是上述两个矩阵。下面展示一个小例子:

xgv = [0:0.01:1];
ygv = 1:10;
[x,y] = meshgrid(xgv,ygv);
z= x.^y;    
surf(x,y,z);

得到的三维图像为:

x.^y
上一篇下一篇

猜你喜欢

热点阅读