How to extract data from multiple Matlab figures (2024)

7 Ansichten (letzte 30 Tage)

Ältere Kommentare anzeigen

Safi ullah am 4 Dez. 2017

  • Verknüpfen

    Direkter Link zu dieser Frage

    https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures

  • Verknüpfen

    Direkter Link zu dieser Frage

    https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures

Kommentiert: Safi ullah am 5 Dez. 2017

Akzeptierte Antwort: Walter Roberson

Hello everyone, I have extracted data from Matlab figure saved in “.fig” format by using the following code

open F1.fig %%F1.fig is the first figure

D = get(gca, 'children')

x=get(D, 'xdata');

y=get(D,'ydata');

z=get(D,'cdata');

x, y, and z are the extracted data of x,y and z components.For only one case I have total 90 figures so by using the above code for each figure take much time. Now I need to use the above code for all 90 figures and get the data at once. I tried by using for loop but it does not work. Thanks

0 Kommentare

-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Melden Sie sich an, um diese Frage zu beantworten.

Akzeptierte Antwort

Walter Roberson am 4 Dez. 2017

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#answer_294623

Bearbeitet: Walter Roberson am 4 Dez. 2017

dinfo = dir('*.fig')

fignames = {dinfo.name};

numfig = length(fignames);

x = cell(numfig, 1);

y = cell(numfig, 1);

z = cell(numfig, 1);

for K = 1 : numfig

figfile = fignames{K};

try

fig = openfig(figfile);

ax = get(fig, 'CurrentAxes');

if ~isempty(ax)

D = get(ax, 'Children');

x{K} = get(D, 'XData');

y{K} = get(D, 'YData');

z{K} = get(D, 'ZData');

else

fprintf('note: file "%s" has empty current axes\n', figfile);

end

close(fig);

catch ME

fprintf('note: file "%s" could not be opened as figure\n', figfile);

end

end

5 Kommentare

3 ältere Kommentare anzeigen3 ältere Kommentare ausblenden

Safi ullah am 4 Dez. 2017

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512526

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512526

@y Walter Roberson thanks for response actually your given code is good but it does not give x,y and z component for each figure. For example, I have 90 figures and for each figure x=1*8, y=1*33 and z=133*8. I need to save these three components for each fig also.

Walter Roberson am 5 Dez. 2017

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512610

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512610

Are you trying to recreate the x, y, and z that were used to create a plot using

plot3(x, y, z)

where x and y were vectors and z was a 2D array?

https://www.mathworks.com/matlabcentral/answers/100687-how-do-i-extract-data-from-matlab-figures#comment_512527

Safi ullah am 5 Dez. 2017

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512683

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512683

Bearbeitet: Safi ullah am 5 Dez. 2017

@ Walter Roberson, I do not try for plotting plot3(x, y, z). I need to extract x,y and z components of each figure and then saved all x components separately, all y components separately and all z components separately.

Walter Roberson am 5 Dez. 2017

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512692

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512692

That is what my code already does. It creates cell arrays, x, y, and z, each of which has one entry per figure. For figures in which there was only one axes child, the entry will be a numeric vector. For figures in which there was more than one axes child, the entry will be a cell array of numeric vectors, one entry per child.

You have a number of figures, and each figure has an unknown number of axes children, so you nested structures are to be expected.

Safi ullah am 5 Dez. 2017

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512713

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/371014-how-to-extract-data-from-multiple-matlab-figures#comment_512713

@ Walter Roberson thanks. Now I found it work good.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Melden Sie sich an, um diese Frage zu beantworten.

Siehe auch

Kategorien

MATLABGraphicsFormatting and AnnotationLabels and AnnotationsAnnotations

Mehr zu Annotations finden Sie in Help Center und File Exchange

Tags

  • extract data
  • for loop

Community Treasure Hunt

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

Start Hunting!

Es ist ein Fehler aufgetreten

Da Änderungen an der Seite vorgenommen wurden, kann diese Aktion nicht abgeschlossen werden. Laden Sie die Seite neu, um sie im aktualisierten Zustand anzuzeigen.


Translated by How to extract data from multiple Matlab figures (8)

How to extract data from multiple Matlab figures (9)

Website auswählen

Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .

Sie können auch eine Website aus der folgenden Liste auswählen:

Amerika

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europa

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom(English)

Asien-Pazifik

  • Australia (English)
  • India (English)
  • New Zealand (English)
  • 中国
  • 日本Japanese (日本語)
  • 한국Korean (한국어)

Kontakt zu Ihrer lokalen Niederlassung

How to extract data from multiple Matlab figures (2024)
Top Articles
Latest Posts
Article information

Author: Sen. Ignacio Ratke

Last Updated:

Views: 6290

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Sen. Ignacio Ratke

Birthday: 1999-05-27

Address: Apt. 171 8116 Bailey Via, Roberthaven, GA 58289

Phone: +2585395768220

Job: Lead Liaison

Hobby: Lockpicking, LARPing, Lego building, Lapidary, Macrame, Book restoration, Bodybuilding

Introduction: My name is Sen. Ignacio Ratke, I am a adventurous, zealous, outstanding, agreeable, precious, excited, gifted person who loves writing and wants to share my knowledge and understanding with you.