WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Daten aus Figure expotieren

 

Fred

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2007, 14:22     Titel: Daten aus Figure expotieren
  Antworten mit Zitat      
Hallo zusammen,

Ich habe einige Daten geplottet und dann den Plot als Figure abgespeichert?

Ist es möglich die x,y-Daten aus dem Figure zu extrahieren bzw. wo finde ich diese (im workspace ist nichts zu finden)?

gruß
Fred


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 18.10.2007, 17:37     Titel:
  Antworten mit Zitat      
Hallo,

das würde mich auch sehr interessieren! Ich habe mal mit dem Data Cursor (fünfte Schaltfläche von rechts in der figure oder unter Tools) alle 60 Punkte in meinem Plot markiert (ab dem zweiten Alt + Klick) und dann im Menü der rechten Maustaste "Export Cursor Data to Workspace" ausgewählt. Dadurch bekommt man ein Cell Array voller Strukturen, aus dem man dann noch die richtigen Daten fischen muss. Mache ich nicht nochmal... Confused Höchstens bei 10 Punkten!

Wer weiß etwas besseres?

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 22.10.2007, 08:12     Titel:
  Antworten mit Zitat      
Hallo,

so ganz trivial ist das nicht, man sollte schon die hierarchischen Strukturen beim Plotaufbau kennen.

Mit

Code:
obj = get(gca,'Children')


bekommt man den oder die handles auf die line-Objekte im aktuellen Plot (die line-Objekte enthalten die eigentlichen Daten). Bei einem einfachen Plot ist das genau eine Zahl, bei mehreren übereineinander geplotteten Daten sind es mehrere Zahlen in einem cell array.

Die eigentlichen Daten erhält man dann mit

Zitat:
x = get(obj,'XData')


bzw.

Zitat:
y = get(obj,'YData')


Bei mehreren Datensätzen sind dies auch wieder cell arrays.


Sehr hilfreich sind in diesem Zusammenhang die immer wieder auftauchenden Abbildungen über die Abhängigkeiten der graphischen Objekte in der Matlab-Hilfe.

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
Fred

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.10.2007, 13:12     Titel:
  Antworten mit Zitat      
Danke erstmal,
hat mir schon weitergeholfen.

gruß
Fred
 
Tom

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.03.2009, 14:04     Titel:
  Antworten mit Zitat      
Hallo hab ein ähnliches Problem. Ich habe Matlab .fig und will die Daten auslesen und in Excel importieren.

Hat jemand schon ein fertiges .m file dafür??

Danke für eure Bemühunge

Gruß Tom
 
ArJay
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 20.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.09.2009, 20:43     Titel:
  Antworten mit Zitat      
Die Matlab figures sind im MAT Format gespeichert, einfach über

Code:
load('Filename.fig','-mat')


sämtliche Daten der Figure in den Workspace laden. Ein wenig durch die structure wühlen, die Daten stehen irgendwo unter children --> properties --> XData ....
Private Nachricht senden Benutzer-Profile anzeigen
 
Tom

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.02.2010, 13:08     Titel: Matlab Werte aus Grafik auslesen
  Antworten mit Zitat      
Hallo,

ich habe aus mehreren mathematischen Funktionen schließlich ein Plot ausgeben lassen. Es handelt sich um eine log. Funktion. Jetzt möchte ich einfach nur an einem Punkt der X Achse den Y Achsen Wert auslesen oder durch einen Punkt in der Grafiken zeigen lassen.
Wie ist das möglich?
Wenn ich :
Code:

>> x = get(obj,'XData')
eingebe, kommt nur:

x =

    [              1]
    [1x600000 double]

bitte um Hilfe....
 
EdAl
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 18.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2011, 16:30     Titel:
  Antworten mit Zitat      
hallo,

ich war eben auch grad auf der suche nach einer ähnlichen Funktion, mir hat dabei "ginput" geholfen. dabei wird ein x und ein y vektor erstellt mit den entsprechenden daten darin. (x und y aus Diagramm)

evtl. hilft es ja dem ein oder anderen weiter!
Private Nachricht senden Benutzer-Profile anzeigen
 
Wenders

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2013, 12:39     Titel: Daten aus Figur auslesen und wieder plotten
  Antworten mit Zitat      
Hier ein einfaches Code Beispiel. Die Daten der jeweils aktiven Figure werden als Vektoren in die Variablen X und Y gelesen.


Code:
% figure mit den zu extrahierenden Daten muss den Fokus haben (gca)
graphs = get(gca, 'Children');
i = 1;   % ggf. anpassen, wenn die Fig mehrere Graphen zeigt
X = get(graphs(i), 'XData');
Y = get(graphs(i), 'YData');

% nun kann man testhalber z.B. wieder plotten
figure;
plot(X, Y);


geht auch als Einzeiler für die Kommandozeile:
Code:
graphs = get(gca, 'Children'); i = 1; X = get(graphs(i), 'XData'); Y = get(graphs(i), 'YData'); figure; plot (X, Y);

dann aber nicht vergessen, dass gca sich nun auf die neue Figure bezieht und der Code also deren Daten ausliest.
 
Gast123321

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.05.2014, 08:43     Titel: Daten aus Diagramm lesen funktioniert nicht
  Antworten mit Zitat      
Hallo,

ich habe eine etwas komplizierte Gleichung die ich nicht umstellen kann. Also habe ich die Funktion mit ezplot geplottet und möchte aus der Figur die Daten herausziehen. Doch leider kommt dabei überhaupt nicht die Kurve raus, die eigentlich rauskommen sollte. Es wird einfach nur eine Gerade angezeigt.

Code:
h=ezplot(((150+sin((x/360)*2*pi)*59+sin((a/360)*2*pi)*94)^(2)+(-65.6-cos((x/360)*2*pi)*59+cos((a/360)*2*pi)*94)^(2)-237^(2)),[-90,90]); grid;graphs = get(gca, 'Children'); W = get(h, 'XData'); Z = get(h, 'YData'); figure; plot (W, Z);


Hat jemand eine Idee woran das liegen könnte?

Danke im Vorraus!
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.