在matlab上绘制一些东西

时间:2015-07-19 21:49:18

标签: matlab coordinates calculus polar-coordinates

所以我试图在Matlab上绘图,这是我迄今为止的源代码:

phi=linspace(0,pi,100);
theta=linspace(0,pi,100);
r=phi.^2+theta.^2;

x=r.*sin(phi).*cos(theta);
y=r.*sin(phi).*sin(theta);
z=r.*cos(phi);
plot3(x,y,z,'*')

然而,这只给了我一片,我想要多片。我该怎么做呢? 谢谢!

1 个答案:

答案 0 :(得分:4)

您的代码存在一些问题:

  • 在您的代码中,thetaphi向量phi的每个值都与theta的值相关联。这给出了一条线,而不是表面。要生成曲面,您需要生成一个网格,其中包含矩阵形式的thetaphi值的所有组合。这可以使用ndgrid完成。
  • 圆环的方程似乎是错误的。我是从Wikipedia
  • 中取出来的
  • thetaphi应该从02*pi(不是从0pi)。

代码:

phi = linspace(0,2*pi,100);
theta = linspace(0,2*pi,100);
[pp, tt] = ndgrid(phi,theta);
R = 1;
r = 1;
x = (R+r.*cos(tt)).*cos(pp);
y = (R+r.*cos(tt)).*sin(pp);;
z = r.*sin(tt);
plot3(x,y,z,'*')

图:

enter image description here