Do the isosurfaces merely indicate a single value or do they contain information on all the value above the threshold?

2 views (last 30 days)
When I use the isosurface command with a specific value (say corresponding to 95th percentile of my data), I am interesting in viewing the regions that correspond to values equal to and greater than the 95th percentile. My question is: Using Matlab's default isosurface return (see below for portion of code), is the surface just equal to the 95th percentile? If I want Matlab to plot all the regions above the 95th percentile threshold, should I plot multiple isosurfaces of 95th, 96th...99th percentiles?
isovalue = prctile(sgs(:),95);
p = patch(isosurface(x,y,z,sgs,isovalue));
p.FaceColor = 'magenta';
p.EdgeColor = 'none';
  4 Comments
John D'Errico
John D'Errico on 17 Sep 2019
An iso-surface represents that surface where the value (here a percentile) is equal to the designated value. So if it is the 95% level, then that is what the surface represents, and nothing else.
Is it generally a truism that stuff on one side of that percentile will be above, and stuff on the other side will be below? Well, yes. Can I create a scenario where that is not true? Well, yes, I am confidant in my ability to do so. But typically, one would say the iso-surface will USUALLY represent the boundary of the region that you are interested in. Worse, the iso-surface does not even indicate on which side of the surface the part you care about lies.
saipb
saipb on 17 Sep 2019
John,
I understand that there are different options and I certainly do not intend to question your ability to create different scenarios. I am trying to understand what the default option in Matlab is if I write the following code:
pile = 95;
isovalue = prctile(w(:),pile);
m = patch(isosurface(x,y,z,w,isovalue));
m.FaceColor = 'red';
m.EdgeColor = 'none';
m.FaceAlpha = '0.6';
And I see surfaces like:
Screen Shot 2019-09-17 at 3.44.59 PM.png

Sign in to comment.

Answers (1)

darova
darova on 19 Sep 2019
You should plot multiple isosurfaces since isovalue should be a scalar
YOu can use for loop for that purpose

Tags

Products

Community Treasure Hunt

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

Start Hunting!