How to display minimum vaue of a Surface z-axis.
12 views (last 30 days)
Show older comments
I have drew a trisurf with 100 values in each x,y and z variable, and I want to display the least 10 data values of z on the surface over the location of the points .
0 Comments
Answers (2)
Image Analyst
on 21 Dec 2012
Edited: Image Analyst
on 21 Dec 2012
sortedValues = sort(z(:), 'ascend');
fprintf('%f\n', sortedValues(1:10));
Use text() if you want to display some message above the data point.
1 Comment
Image Analyst
on 21 Dec 2012
Edited: Image Analyst
on 21 Dec 2012
I noticed your attempt at using text below:
text(Xmin+xgap, Ymin+ygap, Zmin+zgap);
like I suggested, but where is the message you want to display? You didn't supply it. Try creating a message like I said:
message = sprintf('Zmin=%.2f', Zmin); % Create string for the Zmin point.
text(Xmin+xgap, Ymin+ygap, Zmin+zgap, message);
Matt Kindig
on 21 Dec 2012
Edited: Matt Kindig
on 21 Dec 2012
You can do this using text() function. Something like this:
%Xval, Yval, and Zval are your MxN matrices used to make the surface.
Zmin = sort(Zval(:), 'descend'); %sort z decreasing
Zmin = Zmin(1:10); %10 smallest z values
pos = ismember(Zval, Zmin); %location of Z values
Xmin = reshape(Xval(pos),[],1);
Ymin = reshape(Yval(pos),[],1);
xgap = 1; ygap = 1; zgap = 1; %adjust to get desired spacing of label from point.
text( Xmin+xgap, Ymin+ygap, Zmin+zgap);
2 Comments
Matt Kindig
on 21 Dec 2012
Edited: Matt Kindig
on 21 Dec 2012
Or maybe I misunderstood your question. Are you asking how to plot these points? In that case, just use plot3():
hold on;
plot3( Xmin, Ymin, Zmin, 'o');
See Also
Categories
Find more on Surface and Mesh Plots 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!