早教吧 育儿知识 作业答案 考试题库 百科 知识分享

这个函数如何用matlab在三维坐标中画出p值为固定值1000,σ为100,50,20,10,怎么把这些数据在三维图中画出啊

题目详情
这个函数如何用matlab在三维坐标中画出
p值为固定值1000,σ为100,50,20,10,怎么把这些数据在三维图中画出啊
▼优质解答
答案和解析
主要思想是利用球坐标系,代码如下:
P=1000;
S=[100 50 20 10];


aa=pi*linspace(0,1.5,200);%为了看清楚内部,只画了3/4圆周,全部是pi*linspace(0,2,100)
bb=0.5*pi*[-logspace(0,-1.2,50),0,logspace(-1.2,0,50)];%b=0是无意义的,此处的数据为NaN,可以用于断图
[a,b]=meshgrid(aa,bb);


figure
hold on
for h=3*P./S/2/pi
    r=h*(abs(sin(b))).^(-3/5);%题目中公式的等价变形
    x=r.*cos(b).*cos(a);
    y=r.*cos(b).*sin(a);
    z=r.*sin(b);
    surf(x,y,z)
end


view([30 10])
shading interp
light('Position',[-1 -1 1])
lighting gouraud
axis off