How to display minimum vaue of a Surface z-axis.
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (2)
Image Analyst
am 21 Dez. 2012
Bearbeitet: Image Analyst
am 21 Dez. 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 Kommentar
Image Analyst
am 21 Dez. 2012
Bearbeitet: Image Analyst
am 21 Dez. 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
am 21 Dez. 2012
Bearbeitet: Matt Kindig
am 21 Dez. 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 Kommentare
Matt Kindig
am 21 Dez. 2012
Bearbeitet: Matt Kindig
am 21 Dez. 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');
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!