|
|
Daten aus Figure in GUI laden |
|
kruu |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 15.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.07.2010, 15:29
Titel: Daten aus Figure in GUI laden
|
|
Hi Leute,
Folgendes:
Ich habe bislang immer Daten aus Matlab figures makieren können und diese dann über:
h= get(gco)
x=h.XData;
y=h.YData;
auslesen können und dann natürlich erneut plotten können. Alles kein Problem, wenn ich das in einem m-file realisiere!
Versuche ich das in einem GUI klappt es leider nicht!
Ich würde gerne in einem Matlab-figure die Daten makieren und diese makierten Daten dann per ButtonClick im GUI in ein Axes im GUI laden!
Leider sagt mir Matlab immer das kein Feld "XData" existiert!
Hat da vlt. jemand eine andere Möglichkeit das Problem zu lösen?
Viele Grüße
kruu
|
|
|
|
|
yankemen |
Forum-Century
|
|
Beiträge: 104
|
|
|
|
Anmeldedatum: 14.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 32: 2008a & 2010a
|
|
|
|
|
|
Verfasst am: 15.07.2010, 15:50
Titel:
|
|
Moin kruu,
das liegt u.a. daran, dass Guis einen eigenen Workspace haben. Wenn Du noch gar keine Erfahrung mit Guis hast, dann schau doch bitte mal in den Tutorials und Verlinkungen. Ob Du dabei Guide verwendest oder nicht, ändert nichts am Verhalten einer Gui.
Ansonsten beschreibe das Problem doch bitte etwas genauer.
Grüße,
yankemen
|
|
|
kruu |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 15.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.07.2010, 16:08
Titel:
|
|
Hallo yankemen,
lieben Dank erst einmal für die schnelle Antwort.
Ich schaue schon den ganzen Tag Tutorials und Matlabhelps zu GUIs, habe bis jetzt aber leider noch keine Lösung gefunden.
Also ich möchte folgendes erreichen:
Hab mir ein GUI gemacht mit einem Pushbutton und einem Axes.
Ich würde nun gerne aus einem anderen figure, wo etwas geplottet ist, dieses geplottete in das GUI-Axes bekommen OHNE die Daten vorerst abzuspeichern und zu importieren!
Ich möchte durch den Push buttom aktivieren, dass sich das GUI die makierten Daten aus dem figure holt und wieder in seine Axis plottet. Danach sollen natürlich weitere Verarbeitungen stattfinden aber das ist erstmal egal!
Habe das mal in den Anhang gepackt was ich bis jetzt habe!
Beschreibung: |
|
Download |
Dateiname: |
FFT_Analyse.m |
Dateigröße: |
4.46 KB |
Heruntergeladen: |
431 mal |
Beschreibung: |
|
Download |
Dateiname: |
FFT_Analyse.fig |
Dateigröße: |
4.07 KB |
Heruntergeladen: |
379 mal |
|
|
|
josekamara |
Forum-Meister
|
|
Beiträge: 529
|
|
|
|
Anmeldedatum: 26.04.08
|
|
|
|
Wohnort: München
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.07.2010, 18:32
Titel:
|
|
Du musst das Axes wo die Daten sind, erkennen!
Hier ist eine Lösung:
_________________
Simulation
|
|
|
kruu |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 15.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2010, 08:13
Titel:
|
|
Hey josekamara,
vielen Dank funktionbiert super!
Wie lernt man bloß so Matlab zu programmieren, echt cool!
Schönes WE
Viele Grüße
kruu
|
|
|
josekamara |
Forum-Meister
|
|
Beiträge: 529
|
|
|
|
Anmeldedatum: 26.04.08
|
|
|
|
Wohnort: München
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2010, 08:27
Titel:
|
|
Dies ist nur im Falle wenn nur ein Figure und GUI geöffnt sind. Anders gehts nicht! Dies zu vermeiden musst Du die Figures mit einem sogenannten Tag kennzeichnen.
_________________
Simulation
|
|
|
kruu |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 15.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2010, 08:44
Titel:
|
|
Alles klar! Dann musss ich mal schauen wie ich den Figures ein Tag gebe!
Wie gehts das denn, wenn die ein tag haben?
Um den code zu verstehen! Was macht folgende Zeile und wie verlinkst Du die Befehle hier im Forum?
AxesChildren = get(FigureAxes(find(FigureAxes ~= gca)),'Children');
Gruß
kruu
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 16.07.2010, 08:48
Titel:
|
|
|
|
|
kruu hat Folgendes geschrieben: |
Alles klar! Dann musss ich mal schauen wie ich den Figures ein Tag gebe!
Wie gehts das denn, wenn die ein tag haben?
Um den code zu verstehen! Was macht folgende Zeile und wie verlinkst Du die Befehle hier im Forum?
AxesChildren = get(FigureAxes(find(FigureAxes ~= gca)),'Children');
Gruß
kruu |
ich warr geraaae dabei die gleiche Frage zu stellen, hat mich auch interessiert ;)
ich glaube mit der zeile:
bekommt man 2 objekte weil man da 2 axen hat.
aber wir wollen die daten von einem axes, damit wir sie ins andere übertragen.
mit der teil:
will man eigentlich den index und damit die axes bestimmen von der wir die daten holen.
aber gca hängt davon ab was zuletzt geklickt wurde.
woher weiss ich ob find dann 1 oder 2 liefert?
bevor du dein code eintippst den knopf 'code' drücken, nachdem du mit dem code fertig bist, den knop nochmal drücken.
übrigens wieso nicht direkt:
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
josekamara |
Forum-Meister
|
|
Beiträge: 529
|
|
|
|
Anmeldedatum: 26.04.08
|
|
|
|
Wohnort: München
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.07.2010, 09:16
Titel:
|
|
da der Axes und button in der gleichen Figure sind, wird natürlich dieses Axes als Current Axes betrachtet.
_________________
Simulation
|
|
|
Fourier |
Forum-Guru
|
|
Beiträge: 329
|
|
|
|
Anmeldedatum: 05.04.10
|
|
|
|
Wohnort: Karlsruhe
|
|
|
|
Version: 2009b
|
|
|
|
|
|
Verfasst am: 16.07.2010, 09:49
Titel:
|
|
das ist natürlich logisch, hab vergessen dass es einen knopf gibt ;)
_________________
Ein schlechter General ist besser als zwei gute.
|
|
|
kruu |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 15.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2010, 17:07
Titel:
|
|
|
|
|
Hey Hab jetzt ein weiteres Problem.
Der Vorschlag von josekamara hat super geplppt, wenn ich nur ein Axis in meinem GUI hatte. Jetzt habe ich aber 2 Axis in mein GUI gepackt und der Code läuft nicht mehr!
Matlab sagt Immer:
??? Error using ==> get
Conversion to double from cell is not possible.
Error in ==> TestFFT_Analyse>MesswertaufnahmeButton_Callback at 89
xfft=get(AxesChildren,'XData');
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> TestFFT_Analyse at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==>
@(hObject,eventdata)TestFFT_Analyse('MesswertaufnahmeButton_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
Gibt es nicht vlt. doch noch eine andere Möglichkeit das zu programmieren? Die Datenaufnahme nevt hier echt.
Ich habe in der Praxis leider keine Möglichkeit dem Figure aus dem ich die Daten möchte ein Tag zu geben. Wie würde das denn aber mit Tag funktionieren?
Hoffe Ihr könnt mir helfen viele Grüße und lieben Dank
kruu
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 22.07.2010, 18:45
Titel:
|
|
Hallo Kruu,
Du musst Dich für ein AXES-Objekt entscheiden, z.B.:
Gruß, Jan
|
|
|
kruu |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 15.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.07.2010, 07:18
Titel:
|
|
Hey Jan,
lieben Dank erst einmal für Deine schnelle Antwort.
Das hat aber leider nichts gebracht!
Wenn ich das untere Axis im GUI lösche geht die Datenaufnahme problemlos bei 2 Axis funktioniert die Daten aufnahme nicht mehr und er sagt die Fehlermeldung vom gestrigen Beitrag!
Hab Ihr vlt. noch weitere Ideen?
Beschreibung: |
Diese Datei öffne ich und makiere den Graphen. |
|
Download |
Dateiname: |
testplot.fig |
Dateigröße: |
6.41 KB |
Heruntergeladen: |
375 mal |
Beschreibung: |
Hier auf den Button "messwertaufnahme" klicken! |
|
Download |
Dateiname: |
TestFFT_Analyse.fig |
Dateigröße: |
6.2 KB |
Heruntergeladen: |
377 mal |
Beschreibung: |
|
Download |
Dateiname: |
TestFFT_Analyse.m |
Dateigröße: |
4.15 KB |
Heruntergeladen: |
376 mal |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|