matlab中的参数函数绘图
parametric function plotting in matlab
我需要绘制 x = cos(u)*cos(v), y=cos(v)*sin(u), z = -sin(v) 其中 u,v 都来自 (0, \pi)。我查看了 fplot3
函数,但它只需要一个参数。任何人都可以指出一些功能还是有其他方法比如编写脚本来进行绘图?
我会为此使用 meshgrid
:
u = linspace(0,pi,51);
v = linspace(0,pi,51);
[U,V] = meshgrid(u,v);
X = cos(U).*cos(V);
Y = sin(U).*cos(V);
Z = -sin(V);
然后您可以根据需要将其绘制为网格(使用 mesh(X,Y,Z)
)或一组线(例如,此处通过 plot3(X',Y',Z')
显示):
您可以使用 fsurf
绘制参数曲面图。 fsurf
接受两个输入,u
和 v
。
% your functions
f_x = @(u,v) cos(u).*cos(v);
f_y = @(u,v) cos(v).*sin(u);
f_z = @(u,v) -sin(v);
% plot
umin = 0;
umax = pi;
vmin = 0;
vmax = pi;
figure(1); clf;
fsurf(f_x,f_y,f_z, [umin umax vmin vmax])
您还可以查看 fcontour
和 fmesh
。
我需要绘制 x = cos(u)*cos(v), y=cos(v)*sin(u), z = -sin(v) 其中 u,v 都来自 (0, \pi)。我查看了 fplot3
函数,但它只需要一个参数。任何人都可以指出一些功能还是有其他方法比如编写脚本来进行绘图?
我会为此使用 meshgrid
:
u = linspace(0,pi,51);
v = linspace(0,pi,51);
[U,V] = meshgrid(u,v);
X = cos(U).*cos(V);
Y = sin(U).*cos(V);
Z = -sin(V);
然后您可以根据需要将其绘制为网格(使用 mesh(X,Y,Z)
)或一组线(例如,此处通过 plot3(X',Y',Z')
显示):
您可以使用 fsurf
绘制参数曲面图。 fsurf
接受两个输入,u
和 v
。
% your functions
f_x = @(u,v) cos(u).*cos(v);
f_y = @(u,v) cos(v).*sin(u);
f_z = @(u,v) -sin(v);
% plot
umin = 0;
umax = pi;
vmin = 0;
vmax = pi;
figure(1); clf;
fsurf(f_x,f_y,f_z, [umin umax vmin vmax])
您还可以查看 fcontour
和 fmesh
。