Effacer les filtres
Effacer les filtres

working of surf function

1 vue (au cours des 30 derniers jours)
RajyaLakshmi
RajyaLakshmi le 24 Juin 2015
Modifié(e) : Stephen23 le 24 Juin 2015
Plot the following surfaces using the surf function:
a) Sine surface
x = sin(u)
y = sin(v)
z = sin(u +v )
where 0 <= u <= 2*pi, and 0 <=v <= 2*pi.
I executed the following code :
u=[0:pi/4:2*pi];
v=[0:pi/4:2*pi];
x=sin(u);
y=sin(v);
z=sin(u+v);
surf(x,y,z);colorbar;xlabel('sin(u)');ylabel('sin(v)');zlabel('sin(u+v)');title('Sine Surface');
After executing the above code I got the following error
Error using surf (line 75) Z must be a matrix, not a scalar or vector
Here Z is a matrix of size [1 9]. can anyone tell me the reason:
  1 commentaire
Jan
Jan le 24 Juin 2015
I've edited the question to format the code. Please use the "{} Code" button for posting code. Thanks.

Connectez-vous pour commenter.

Réponses (2)

Stephen23
Stephen23 le 24 Juin 2015
Modifié(e) : Stephen23 le 24 Juin 2015
surf needs matrices to plot this data, so you need to convert the two vectors u and v into matrices... this is exactly what meshgrid is for:
u = 0:pi/4:2*pi;
v = 0:pi/4:2*pi;
[uM,vM] = meshgrid(u,v);
I am sure that you can manage the rest, you just need to use the uM and vM values instead of u and v. You might also like to decrease the step size: around one twentieth looks nice.

Jan
Jan le 24 Juin 2015
Please read the documentation of the surf command. There you find working examples, which explain, that Z must be a matrix of the size length(X)*length(Y):
If X and Y are vectors, length(X) = n and length(Y) = m, where [m,n] = size(Z)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by