Filter löschen
Filter löschen

working of surf function

1 Ansicht (letzte 30 Tage)
RajyaLakshmi
RajyaLakshmi am 24 Jun. 2015
Bearbeitet: Stephen23 am 24 Jun. 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 Kommentar
Jan
Jan am 24 Jun. 2015
I've edited the question to format the code. Please use the "{} Code" button for posting code. Thanks.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Stephen23
Stephen23 am 24 Jun. 2015
Bearbeitet: Stephen23 am 24 Jun. 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 am 24 Jun. 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)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by