matlab三维曲面

本菜菜学生自学了matlab,想尝试拿别人文章反向写出代码

img


这是公式,意义是,当集中力作用在地面某一点,以该点为中心,x,y轴为半径r=4的范围内,地面z米深处所受的力。

img


p=200KN,z=[1,1.5,2,3],我尝试的用for语句控制r,for r=-4:2:4,但最后得的sigma是最后一次循环变量值而不是一个矩阵,
不会用surf函数。
先行谢谢。

p=200e3;
z_arr=[1,1.5,2,3];
arr=[];
x=-5:0.5:5;
y=transpose(-5:0.5:5);
r=sqrt(x.*x+y.*y);
for z=z_arr
    R=sqrt(r.*r+z*z);
    sigma=-3*p*z^3./2./pi./R.^5;
    figure(z*2)
    surf(x,y,sigma)
    title(['z=',num2str(z)])
end

img