How can I extract surface plot data from MATLAB figure?

13 vues (au cours des 30 derniers jours)
vasudha agrawal
vasudha agrawal le 26 Juin 2018
Commenté : TheStranger le 17 Déc 2021
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
Walter Roberson
Walter Roberson le 26 Juin 2018
What is your intention of having a surfl() call after you just did an openfig() ?
vasudha agrawal
vasudha agrawal le 26 Juin 2018
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

KSSV
KSSV le 26 Juin 2018
[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
vasudha agrawal
vasudha agrawal le 27 Juin 2018
Thank you so much. This code is working.
TheStranger
TheStranger le 17 Déc 2021
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 Help Center 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