Matlab画图问题

x属于(0,1),y属于(0,2),z=x*y,现在要画一幅图,要求:z<=0,20.2<z<=0.40.4<z<=0.60.6<z<=0.8上面四个区域最好用颜色区分开,求大虾!!!

再次强调matlab不是绘图软件,它在绘图方面实在是有些太不灵活方便了,你用用就知道了,所以有特殊要求的问题你可以利用它完成一部分,不建议使用matlab完成整个图像的绘制。

 

clear all
[x,y]=meshgrid(0:0.01:1,0:0.01:2); %根据xy范围设置网格
z1=x.*y;%计算所有的z
z=z1.*(z1<=0.2|z1>0.2&z1<=0.4|z1>0.4&z1<=0.6|z1>0.6&z1<=0.8);%取出符合四个区间的z,其它区间z将会为0
z(z(:)==0)=NaN;%将z为0的其它区域去除

 


figure (1)
mesh(x,y,z);
colormap(jet(4));%这里由于是四个等间隔区间,使用取巧的方法。如果是非等间距的区间将只有通过colormap Editor编辑颜色了
xlabel('X'),ylabel('Y'),zlabel('z')

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-17
clcclearclose allx=[0:0.01:1];y=[0:0.01:1];[x,y]=meshgrid(x,y);z=x-0.67*y+0.33;mesh(x,y,z)plot3(x,y,z);xlabel('x');ylabel('y');zlabel('z');grid on;hold on;首先z=x-0.67*y+0.33是平面;其次画平面不能用plot3那是画三维曲线
最后出图是由一些平行线构成的平面的,间隔取0.01更密集

希望能解决您的问题。追问

我只会画z<=0.2的那一档,不知道怎么把他们叠加啊

本回答被提问者采纳
相似回答