How can I extract surface plot data from MATLAB figure?

I would like to extract surface plot data from saved matlab fig. I am trying using below code
ch=openfig('latching_surfplot.fig');
ch = findobj(ch,'Type','surface');
surfl(x,y,z);
ch=get(gca,'ch');
x=get(ch,'xd');
y=get(ch,'yd');
z=get(ch,'zd');
But I am getting the following error
Undefined function or variable 'x'.
*Error in surfvslineplot
surfl(x,y,z);*
Please help.
Thanks

2 commentaires

What is your intention of having a surfl() call after you just did an openfig() ?
If I remove surfl(), then following error came. So, I added surfl() command.
Error message: There is no xd property on the Surface class.
Error in surfvslineplot x=get(ch,'xd');

Connectez-vous pour commenter.

 Réponse acceptée

[X,Y,Z] = peaks(100) ;
surf(X,Y,Z)
h = gcf; %current figure handle
axesObjs = get(h, 'Children'); %axes handles
dataObjs = get(axesObjs, 'Children'); %handles to low-level graphics objects in axes
%%get data
XX = dataObjs.XData ;
YY = dataObjs.YData ;
ZZ = dataObjs.ZData ;

2 commentaires

Thank you so much. This code is working.
In the latest version one should write:
dataObjs(2).Children.XData
just fyi

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 2-D and 3-D Plots dans Centre d'aide et File Exchange

Produits

Version

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by