Surf plots 2D + color. I want a 3D plot. What is the solution?
13 views (last 30 days)
Show older comments
Mike Mierlo van
on 1 Oct 2019
Commented: Mike Mierlo van
on 1 Oct 2019
I have the following code:
if true
x= 30:0.1:50;
y= [100:0.1:150]';
Z= x.*y;
surf(x,y,z)
end
I want to have a 3D plot, but I get 2D with color. Please help me with this code
0 Comments
Accepted Answer
John D'Errico
on 1 Oct 2019
Edited: John D'Errico
on 1 Oct 2019
But what you have, that is z(x,y), is a 2-dimensional manifold in R^3, that is, a surface embedded in the 3-dimensional cartesian space. That is what surf gives you, and you do get 3-d plot, of sorts. As long as you recognize that no plot is truly 3-dimensional, because you have only a 2-d monitor. Your eyes see only a 2-d scene anyway, and then your brain has learned from long training to piece together what is happening due to stereo information from your eyes. That is getting far beyond your question though. But you need to explain what it is that you think something truly 3-dimensional should result from surf, which after all, creates a SURFACE.
help surf
surf 3-D colored surface.
surf(X,Y,Z,C) plots the colored parametric surface...
So it would seem that when you used surf, you got exactly that - a surface.
If you somehow need to see a volume, first, buy a 3-dimensional monitor. I recommend the holodeck you might find on a TV show, but Starfleet supply tends to be slow in delivery times. Mine is still on backorder, although forward order seems a better name, since it must come from the future. Better perhaps might be to buy a holographic projector. They are probably expensive. Watch out for the lasers too, as if they zap your vision in one or both eyes, then forget about 3-dimensional viewing at all.
Ok, perhaps what you really want is to see a plot of a 3-dimensional volume. For that, you need to first create a representation of a 3-dimensional object that actually contains volume. But then you can only plot the surface of that volume, because the plot will still be a two dimensional projection anyway. It really does come down to that 2-monitor you have, and your 2-d eyes. There are tools out there that give you two different projections in stereo, that you then need to view by crossing your eyes, but many people find that a difficult thing to do without practice.
I'm not sure this answer has truly been helpful in solving your difficult problem, but, perhaps the solution is to either change your goals, or better define what you want to do? In the end, remember that surf (like any piece of computer software) does what it is designed to do, not what your mind thinks it wants to do. Mind reading software is expensive anyway, and usually requires another slowly fulfilled requisition from Starfleet command.
4 Comments
John D'Errico
on 1 Oct 2019
Edited: John D'Errico
on 1 Oct 2019
Lol. That was all you wanted? :)
You can always rotate your 3-d plot (as created by surf.) View will help there for a psecific view. But you can also go to the plot tools menu, and choose roate there.
More Answers (0)
See Also
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!