%画球
r=1;
theta=linspace(0,pi);
phi=linspace(0,2*pi);
[tt,pp]=meshgrid(theta,phi);
x=r.*sin(tt).*cos(pp);
y=r.*sin(tt).*sin(pp);
z=r.*cos(tt);
%上面三句可以改成简单的一句:
%[x,y,z] = sph2cart(pp,pi/2-tt,r);
%其中的变换是matlab的球坐标定义与寻常不同造成的,可以看matlab的帮助
subplot(1,2,1)
mesh(x,y,z)
shading flat
axis square
%%%%%%%%%%%%%%%%%%%%%画柱
subplot(1,2,2)
[X,Y,Z] = cylinder(r,200);
%cylinder的具体用法可见matlab帮助,输入doc cylinder查看帮助
surf(X,Y,Z)
axis square
可以用pol2cart将柱坐标转换为笛卡尔坐标
用sph2cart将球面坐标转换为笛卡尔坐标
然后再画即可