当已知一维数据x,y以及关于z的函数表达式时,我们可以通过meshgrid函数创建网格绘制三维图
[X,Y] = meshgrid(x,y)
把一维的 x
和 y
扩充成二维网格坐标X,Y。X
是一个矩阵,每一行是 x
的一个副本;Y
也是一个矩阵,每一列是 y
的一个副本,如:
x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
%生成的X、Y如下:
X = 5×3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
Y = 5×3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
下面看一个例子:
x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);
Z = X.*exp(-X.^2-Y.^2);
surf(X,Y,Z)
效果如下:
凡事都要具体情况具体分析,当我们不知道z的函数式,却已知x,y,z这三个一维数组时,这种情况就可以用差值的方法绘制三维图。我的另一篇博客详述了插值函数griddata,并配有用例源码效果图。