matlab中surf的问题

来源:百度知道 编辑:UC知道 时间:2024/05/20 14:29:34
按照我们说的画三维图,只要x,y分别是向量,然后在根据两个向量和其对应的z矩阵不就可以画出空间图形么?可是为什么要生成两个xx,yy矩阵呢?两个矩阵怎么和z矩阵对应呢?
x=linspace(-2, 2, 25); % 在x轴上取25点
y=linspace(-2, 2, 25); % 在y轴上取25点
[xx,yy]=meshgrid(x, y); % xx和yy都是21x21的矩阵
zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵
surf(xx, yy, zz); % 画出立体曲面图

xx和yy都是21x21的矩阵这个我不明白
小妹先谢过各位高手了~~
我的意思是说为什么是两个矩阵和一个矩阵对应,而不是两个向量和一个矩阵对应呢?

【补充】:x和y是1*25向量,要想变为25*25矩阵,只能这样做。

仔细观察以下数据,就明白了。
>> x=linspace(-2, 2, 5)
x =
-2 -1 0 1 2
>> y=x
y =
-2 -1 0 1 2
>> [xx,yy]=meshgrid(x, y)
xx =
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2
-2 -1 0 1 2

yy =
-2 -2 -2 -2 -2
-1 -1 -1 -1 -1
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
>> zz=xx.*exp(-xx.^2-yy.^2)

zz =

-0.0007 -0.0067 0 0.0067 0.0007
-0.0135 -0.1353 0 0.1353 0.0135
-0.0366 -0.3679 0 0.3679 0.0366
-0.0135 -0.1353 0 0.1353 0.0135
-0.0007 -0.0067 0 0.0067 0.0007

surf(x,y,z)中三个参数必须都是相同维