working of surf function
Show older comments
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 Comment
Jan
on 24 Jun 2015
I've edited the question to format the code. Please use the "{} Code" button for posting code. Thanks.
Answers (2)
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.
Categories
Find more on Lighting, Transparency, and Shading in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!