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为正值时取负号 展开
>> 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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询