matlab做已知函数的三维图?

具体函数式:z=2*cos(pi*y/2/1000)*cos(pi*x/2/500);其中x属于(-500,500);y属于(-1000,1000),作网格图mesh(x,y,z),x,y方向网格间距为100。谢谢不吝赐教~

x=-500:100:500;
y=-1000:100:1000;
[xx yy]=meshgrid(x,y);
zz=2*cos(pi*yy/2/1000).*cos(pi*xx/2/500);
mesh(xx,yy,zz);

追问

怎样让x轴与y轴用相同的比例尺呢?

追答

比较麻烦

用axis equal 可以把三个轴的比例相同

但是z轴数据比较小,比例一样这样曲面就压到很平了

要只想把x,y的比例调相同,而z的比例和xy不同

那么人为给个比例吧


set(gca,'DataAspectRatio',[1 1 0.002]);


这样xyz轴的比例尺是1:1:0.002

就是xy显示是长度和数据成正比,而z方向被扩大500倍

由于z的取值是0~1所以扩大后是0~500的比例应该比较好看

当然你可以自己调整比例值

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-27
以下是代码,请采纳!

x=-500:100:500;
y=-1000:100:1000;
z = zeros(length(y), length(x));
for m=1:length(x)
for n=1:length(y)
z(n,m) = 2*cos(pi*y(n)/2/1000).*cos(pi*x(m)/2/500);
end
end
mesh(x,y,z);本回答被网友采纳
相似回答