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

GUI Axes in neuem Figure plotten/anzeigen

 

Dr. Nasenbär
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.05.2014, 09:44     Titel: GUI Axes in neuem Figure plotten/anzeigen
  Antworten mit Zitat      
Hallo Zusammen,

ich habe mir in Matlab eine GUI erstellt, in der eine Axes einen Plot darstellt. Hierzu habe ich einen entsprechenden Button eingefügt. Dieser soll beim Betätigen den Plot aus dem Axes Fenster in ein neues Figure Fenster kopieren bzw. darstellen.

Wie kann ich das realisieren, das der Plot auf der Axes in einem neuen Figure Fenster dargestellt wird.

Vielen Dank schon mal für eure Hilfe.

Gruß
Sebastian
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 08.05.2014, 16:30     Titel:
  Antworten mit Zitat      
Hey,

z.B. mit copyobj:
Code:

h = surf(peaks);
colormap hot
figure          % Create a new figure
axes          % Create an axes object in the figure
new_handle = copyobj(h,gca);
colormap hot
view(3)
grid on
 


Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
Dr. Nasenbär
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 30.04.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2014, 09:41     Titel:
  Antworten mit Zitat      
Vielen Dank schon mal für die schnelle Rückmeldung.Hab deinen Beitrag in der Mathworks Dokumentation gefunden. Dort steht aber in der letzten Zeile:

When programming a GUI, do not call copyobj or textwrap (which calls copyobj) inside a CreateFcn. The act of copying the uicontrol object fires the CreateFcn repeatedly, which raises a series of error messages after exceeding the root object's.

Habs mit copyobj auch nicht hinbekommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 09.05.2014, 09:58     Titel:
  Antworten mit Zitat      
Hey,

da steht doch was von nicht in create Fuction benutzen. Benutzt du das in einer CreateFunction? Der code sollte in einem callback stehen. Zudem ist ein axes Objekt kein uicontrol Objekt sondern ein Axes Objekt. Eigentlich hatte ich nie Probleme soetwas mit copyobj zu realisieren (bis auf den bug mit den bar plots).
Code:

Habs mit copyobj auch nicht hinbekommen.
 


Geht's vll etwas genauer? Was heist das? Fehlermeldung? Problem mit GUIs oder handles generell? Wie sieht dein Code aus?

Greetings
Private Nachricht senden Benutzer-Profile anzeigen
 
skorp41

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2014, 16:59     Titel:
  Antworten mit Zitat      
Hallo,

stehe vor dem gleichen Problem. Aus einer vorhandenen GUI axes möchte ich mithilfe von einem pushbutton ein Undock-figure erstellen.

mein Ansatz:

h1 = handles.axes1;
h2 = figure(1);

copyobj(h1,h2);

An sich funktioniert der Befehl, die Plots, Legende und die Achsenbeschriftungen werden im neuen figure angezeigt. Jedoch bleibt das neue figure statisch, die Größe ist KS passt sich nicht der Größe des figure-Fensters an.

Kennt jemand einen Rat? Im Anhang der figure!

Danke im Voraus!
skorp41

figure_statisch.fig
 Beschreibung:

Download
 Dateiname:  figure_statisch.fig
 Dateigröße:  97.08 KB
 Heruntergeladen:  430 mal
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.06.2014, 22:47     Titel:
  Antworten mit Zitat      
Hallo skorp41,

Zitat:
Jedoch bleibt das neue figure statisch, die Größe ist KS passt sich nicht der Größe des figure-Fensters an.

Das verstehe ich nicht. Was ist "KS"? Welche Größe passt sich nicht woran an?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
skorp41

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2014, 14:11     Titel:
  Antworten mit Zitat      
Hallo Jan S,

der eigentliche Plot passt sich nicht dem figure-Fenster an. Im Anhang ist die figure, da erkennt man es eigentlich sofort was ich meine.
Ich habe das Gefühl, dass ich mich copyobj die axes der GUI kopiere, die mit der originalen, fixen Skalierung in eine neue figure übernommen werden.
Eine Idee?


Vielen Dank im Voraus
skorp41
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 17.06.2014, 21:19     Titel:
  Antworten mit Zitat      
Hallo skorp41,

Zitat:
Im Anhang ist die figure, da erkennt man es eigentlich sofort was ich meine.

Ich habe tagsüber kein Matlab um mit FIG-Files anzuschauen. Sie sind zwar oft sehr praktisch, man kann aber auch ausführbaren Code darin speichern, weshalb ich sie nur selten aus dem Forum downloade.

Zitat:
Ich habe das Gefühl, dass ich mich copyobj die axes der GUI kopiere, die mit der originalen, fixen Skalierung in eine neue figure übernommen werden.

Statt eines gefühles, könntest Du ja einfach mal nachschauen:
Code:
% Klicke einmal in das AXES-Objekt. Dann:
get(gca, 'Units')
get(gca, 'Position');

Eine Lösung könnte sein:
Code:
pos = get(gcf, 'DefaultAxesPosition');
set(gca, 'Units', 'normalized', 'Position', pos)

Hilft das?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
skorp41

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.06.2014, 08:57     Titel:
  Antworten mit Zitat      
Sehr stark, so habe ich mir das vorgestellt. Vielen Dank.
Die Achsenbeschriftungen und Legende sollten doch auch auf einer ähnlichen Weise funktionieren oder?

Kannst du mir vielleicht auch kurz erklären, warum man diese Zusatzbefehle benötigt hat?

Dankeschön.
skorp41
 
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.