Effacer les filtres
Effacer les filtres

Extracting data from a .fig file

62 vues (au cours des 30 derniers jours)
Wissem-Eddine KHATLA
Wissem-Eddine KHATLA le 23 Nov 2023
Commenté : Dyuman Joshi le 23 Nov 2023
Hello everyone,
I know this has already been discussed in an another discussion but I want to extract data from a particular figures and I keep having an error while using the habitual procedure :
open('Comparaison R(t) EXP x THE.fig');
a = get(gca,'Children');
xdata = get(a, 'XData');
ydata = get(a, 'YData');
zdata = get(a, 'ZData');
I obtain the following error :
Error using matlab.graphics.primitive.Data/get
Unrecognized property XData for class ConstantLine.
Anyone knows how I can have access to these datas ?
Thanks for your help in advance,
Sincerely

Réponse acceptée

Dyuman Joshi
Dyuman Joshi le 23 Nov 2023
There are multiple objects in the figure. You need to choose the object(s) for which you want to get the data -
open('Comparaison R(t) EXP x THE.fig')
a = get(gca,'Children')
a =
3×1 graphics array: ConstantLine (L_{car}) Line (Q_{t} - Elastique) Line (Exp)
%x, y and z data for the 2nd graphics object
x2 = a(2).XData
x = 1×255
0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000 3.2000 3.4000 3.6000 3.8000 4.0000 4.2000 4.4000 4.6000 4.8000 5.0000 5.2000 5.4000 5.6000 5.8000
y2 = a(2).YData
y = 1×255
0 0.0010 0.0012 0.0014 0.0016 0.0017 0.0018 0.0019 0.0020 0.0021 0.0021 0.0022 0.0023 0.0023 0.0024 0.0024 0.0025 0.0025 0.0026 0.0026 0.0027 0.0027 0.0028 0.0028 0.0029 0.0029 0.0029 0.0030 0.0030 0.0030
z2 = a(2).ZData
z = 1×0 empty double row vector
  2 commentaires
Wissem-Eddine KHATLA
Wissem-Eddine KHATLA le 23 Nov 2023
Thank you : I misunderstood the result of the get function. Thanks again
Dyuman Joshi
Dyuman Joshi le 23 Nov 2023
You're welcome!
Also, note that not every graphical object will have coordinate data associated with it.
A ConstantLine object is an example of that -
open('Comparaison R(t) EXP x THE.fig')
a = get(gca,'Children')
a =
3×1 graphics array: ConstantLine (L_{car}) Line (Q_{t} - Elastique) Line (Exp)
get(a(1))
Alpha: 0.7000 Annotation: [1×1 matlab.graphics.eventdata.Annotation] BeingDeleted: off BusyAction: 'queue' ButtonDownFcn: '' Children: [1×1 ListOfPointsHighlight] Color: [1 0 0] ColorMode: 'manual' ContextMenu: [0×0 GraphicsPlaceholder] CreateFcn: '' DeleteFcn: '' DisplayName: 'L_{car}' FontAngle: 'normal' FontName: 'Helvetica' FontSize: 10 FontWeight: 'normal' HandleVisibility: 'on' HitTest: on InterceptAxis: 'y' Interpreter: 'tex' Interruptible: on Label: {'L_{car}'} LabelHorizontalAlignment: 'right' LabelOrientation: 'aligned' LabelVerticalAlignment: 'top' LineStyle: '-.' LineStyleMode: 'manual' LineWidth: 2 Parent: [1×1 Axes] PickableParts: 'visible' Selected: off SelectionHighlight: on SeriesIndex: 'none' Tag: '' Type: 'constantline' UserData: [] Value: 0.0082 Visible: on
%Though Get the axis and value associated with it
a(1).InterceptAxis
ans = 'y'
a(1).Value
ans = 0.0082

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Graphics Object Identification dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by