作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 12:05:45
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为正值时取负号
你那程序难以理解,一塌糊涂.取正负按照你的意思就类似按照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