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

matlab中用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为正值时取负号
wuhaobing 1年前 已收到1个回答 举报

plowlx 幼苗

共回答了22个问题采纳率:95.5% 举报

你那程序难以理解,一塌糊涂.取正负按照你的意思就类似按照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

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.040 s. - webmaster@yulucn.com