3D graphics in MATLAB

1 view (last 30 days)
Svetlana
Svetlana on 14 Mar 2015
Answered: Star Strider on 14 Mar 2015
Hello! Could you help me with an issue? I'm trying to plot this figure:
u = 0:pi/5:4*pi;
v = 0:0.05:1;
X = v.*cos(u)-(1/2).*(v.^2).*cos(2*u);
Y = -v.*sin(u)-(1/2).*(v.^2).*sin(2*u);
Z = 4.*(v.^(3/2)).*cos(3.*u/2)/3;
figure('Color','w')
clf
s = surf(X,Y,Z, ...
'LineStyle','none', ...
'FaceLighting','gouraud', ...
'FaceColor','interp');
But MATLAB keeps telling me that Z must be a matrix, not a scalar or vector. How can I solve this problem?
Thanks for your help!

Accepted Answer

Star Strider
Star Strider on 14 Mar 2015
Solve it with the magic of meshgrid:
u = 0:pi/5:4*pi;
v = 0:0.05:1;
[u,v] = meshgrid(u,v);
The rest of your code remains unchanged, and it produces an interesting looking plot.

More Answers (0)

Categories

Find more on Graphics in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!