MATLAB: Contour grid points

contour

Does any one knows how to retrieve the exact grid points of a specific contour when using contour or contourf function. I want to retrive the grid points that matlab uses to plot a specific value of a contour line.
thank you

Best Answer

contour() and contourf() are almost identical internally. They return a single hggroup object, and that hggroup object have a bunch of Children. Each of the Children is a patch object for a different contour level, one patch object per level, with embedded NaN in the coordinates where needed to jump from one place to another in the drawing.
The code that builds the contours sets the Z coordinates to the level of the contour heights, but then one of the last things that contour / contourf does is reset those coordinates to 0. Fortunately, each patch object has a UserData property that is used to store the contour level that it was for.
Soooo...
chand = contour(....);
cpatches = get(chand, 'Children');
for K = 1:length(cpatches)
xcoord{K} = get(cpatches(K),'XData');
ycoord{K} = get(cpatches(K),'YData');
zcoord{K} = get(cpatches(K),'UserData');
end
Warning: for any contour that is moderately complex, the list of coordinates will be pretty messy, lots of ins-and-outs.
Related Question