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!

 Réponse acceptée

Star Strider
Star Strider le 14 Mar 2015

1 vote

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.

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Objects dans Centre d'aide et File Exchange

Produits

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by