matlab中用mesh画函数时公式里有正负号怎么在一个图形里显示出来?

公式如下图所示,我想用MATLAB软件画图,命令:>>l=160;x=linspace(0,80,50);y=linspace(-80,80,50);[X,Y]=mesh... 公式如下图所示,我想用MATLAB软件画图,命令:
>> l=160;
x=linspace(0,80,50);
y=linspace(-80,80,50);
[X,Y]=meshgrid(x,y);
Z=meshgrid((0.2.*exp(-0.0221*x)+0.1).*(exp(-0.15*(l/2+y)+1)))
mesh(X,Y,Z);
但是我没有考虑公式中的正负号,画出的图也不对,请教MATLAB高手该怎样做出这种图?
上面正负号“士”号取值;当y为负值时取正号,当y为正值时取负号
展开
 我来答
showtime_97
推荐于2016-11-17 · TA获得超过4784个赞
知道大有可为答主
回答量:1005
采纳率:90%
帮助的人:828万
展开全部

你那程序难以理解,一塌糊涂。取正负按照你的意思就类似按照y的取值的一个分段函数。y轴原点距离实际是x数据,x轴实际是y数据,在meshgrid时就应该改过来,这是原始物理模型的设置问题,我也懒得在前面改了,在最后用mesh(Y,X,Z)代替mesh(X,Y,Z)吧.

 

clear all

L=160;
x=linspace(0,150,50);
y=linspace(-80,80,50);

 

[X,Y]=meshgrid(x,y);

Z=((0.2*exp(-0.0221*X)+0.1).*(exp(-0.15*(L/2+Y))+1)).*(Y<0)+((0.2*exp(-0.0221*X)+0.1).*(exp(-0.15*(L/2-Y))+1)).*(Y>0);

 

mesh(Y,X,Z);
xlabel('采空区距x轴原点距离/m')
ylabel('采空区距y轴原点距离/m')
zlabel('孔隙率\phi / %')
axis ij

dukinkin
2014-08-07 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:915万
展开全部
l=160;
x=linspace(0,80,50);
y=linspace(-80,80,50);
[X,Y]=meshgrid(x,y);
Z=(0.2.*exp(-0.0221*X)+0.1).*(exp(-0.15*(l/2-abs(Y))+1));
mesh(X,Y,Z);
追问

大神,就差那么一点就可以了,在x=0 y=0处原图是翘起来的,也就是说最小值在0.3左右,而我按您的命令出图后在x=0 y=0处却是z=0的,请问是怎么回事。另外我想着用hold on但是没解决,还不如您的命令。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式