How to place a marker on a 3D surface plot

39 views (last 30 days)
I have a 3D surface plot for a function, and I need to place a marker on this plot at the maximum and minimum values within my range/domain. I have no idea how to do it and I really struggle to find what I am looking for in matlab help

Accepted Answer

Mike Garrity
Mike Garrity on 16 Apr 2015
Consider the following example:
[x,y,z] = peaks;
surf(x,y,z)
hold on
[~,i] = max(z(:));
h = scatter3(x(i),y(i),z(i),'filled');
h.SizeData = 150;
[~,i] = min(z(:));
h = scatter3(x(i),y(i),z(i),'filled');
h.SizeData = 150;
hold off
Does that make sense?
The 2nd arg of the min/max commands tells you the index of the element that is the min or max. You can use that index to get the X, Y, and Z coordinate for the surface.
  1 Comment
Jared Salloum
Jared Salloum on 17 Apr 2015
Thanks Mike, the scatter3 function is what I needed. I already had values and co ordinates for maximums and minimums to display to the user when they called the function I wrote, I just needed a way to pin point a marker on my surface plot, thank you. As a follow up to this, is there a way to include a caption on the marker? thanks again

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!