注册 登录
编程论坛 Matlab

求教画一个分段函数的图

suponlyzx 发布于 2007-05-17 01:06, 1335 次点击
函数有x,y两个变量,当sqrt(x^2+y^2)<=1时
z=1-(x^2+y^2)
而当sqrt(x^2+y^2)>1时
z=0
需要一个mesh图,或者是surf图.
本人初次使用matlab,在自己尝试了两个小时后,由于不太熟悉操作规则实在画不出来,又因为急着在论文上用这个图所以在这里向熟悉matlab画图操作的人求教.在这先谢谢了
6 回复
#2
seidel2007-05-17 14:44

ezsurf((x.^2+y.^2<=1).(z=1.-(x.^2+y.^2))+((x.^2+y.^2<=1).0))即可。

#3
suponlyzx2007-05-18 10:35
回复:(seidel)ezsurf((x.^2+y.^2
麻烦写下比较完整的代码,上面的代码我试了下,好象不行
#4
abingchem2007-05-19 16:31

这样写试试:
[x,y]=meshgrid(-1:0.1:1);
z=x.^2 + y.^2;
i=find(z<=1);
z(i)=1-z(i);
i=find(z>1);
z(i)=0;
mesh(x,y,z)

#5
seidel2007-05-19 17:20
那就把点乘换成乘。ezsurf((x^2+y^2&lt;=1)*(z=1-(x^2+y^2))+((x^2+y^2&lt;=1)*0))
#6
abingchem2007-05-19 20:14

又学到了一手,呵呵,不过楼上好像应该是这样的:
ezsurf('(x^2+y^2<=1)*(1-(x^2+y^2))+((x^2+y^2>1)*0)')

#7
seidel2007-05-20 09:44
是啊!昨天在外面随时上了一会,随意可能有语法错误,请大家见谅!!
1