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

handle.axes1 draufklicken und eine plot fenster öffnen

 

xPashAx
Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 06.06.2010, 15:14     Titel: handle.axes1 draufklicken und eine plot fenster öffnen
  Antworten mit Zitat      
hi leute,
ich habe einen handle.axes1 was da geplottet wird.
ich möchte wenn man ddraufklickt einen plot fenster öffnet um diesen plot besser analysieren zu können.

wie geht das?

ich bedank mich schon vorraus
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.06.2010, 15:36     Titel:
  Antworten mit Zitat      
Hallo,

in GUIDE: handles.axes1 rechts-klicken, View Callbacks, ButtonDownFcn.
Diese wird ausgeführt, wenn du auf das Koordinatensystem klickst, dort müssen also die gewünschten Befehle rein.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 07.06.2010, 08:30     Titel:
  Antworten mit Zitat      
muss man das dann von anfang an nochmal plotten lassen oder kann ich es so machen das es im neuem figure handles.axes1 angezeigt wird.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.06.2010, 10:43     Titel:
  Antworten mit Zitat      
Hallo,

du kannst mit copyobj arbeiten oder, wenn du die Grafik im GUI nicht mehr haben willst, die Eigenschaft 'parent' ändern.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 14.06.2010, 11:43     Titel:
  Antworten mit Zitat      
Code:

% --- Executes on mouse press over axes background.
function axes6_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to axes6 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

figure('Name','test','NumberTitle','off');
h_new_ax = axes ;

new_handles = copyobj(get(handles.axes6,'children'),h_new_ax);
 

wenn ich auf handles.axes6 draufklicke tut sich nichts????

versuche das das plot auf einen neuen figure zu kopieren.

danke
Private Nachricht senden Benutzer-Profile anzeigen
 
xPashAx
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 294
Anmeldedatum: 18.05.09
Wohnort: Heidelberg
Version: ---
     Beitrag Verfasst am: 14.06.2010, 13:03     Titel:
  Antworten mit Zitat      
...es öffnet sich sogar kein figure??? wieso? ich klicke auf axes6 drauf und es passiert nix. nicht mal ne fehlmeldung?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.06.2010, 14:29     Titel:
  Antworten mit Zitat      
Hallo,

gute Frage. Meine Vermutung ist, dass der Callback aus welchen Gründen auch immer gar nicht ausgeführt wird. Setz mal nen Haltepunkt rein.
Um den Grund zu finden, bräuchte man wohl die komplette GUI.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
dasta
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 01.03.11
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 05.05.2011, 11:22     Titel:
  Antworten mit Zitat      
Hallo ich hab genau zu diesem Thema mal noch ne Frage und wollte deswegen nicht extra ein neues Thema aufmachen.

Also ich hab in meiner GUI 2 Diagramme die in axis1 und axis2 dargestellt werden. Nun soll per Button-Knopfdruck oder per rechter Maustaste (ist eigentlich egal) ein neues figure-objekt geöffnet werden, dass den Plot bzw. den Inhalt von axis1 bzw. axis2 anzeigt.
Wie lasse ich nun die gleiche Graphik aus axis1 anzeigen?

So richtig funktioniert das mit dem copyobj() nicht.

Code:
neu = copyobj(handles.axis1, gca);


Liefert nur nur nen Fehler, dass copyobj fals benutzt wurde
Code:
Object axes[1] can not be a child of parent axes[1]


Dass heißt ja dann so viel, dass ich nicht einfach dieses Objekt (handles.axis1) nehmen kann, was soll man denn dann angeben, wenn man quasi nur ne schnöde Kopie von dem einen Diagramm will, die man bearbeiten kann.

Grüße
dasta
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.05.2011, 17:44     Titel:
  Antworten mit Zitat      
Hallo,

zum einen musst du als Zielobjekt das übergeordnete Objekt angeben, also das Handle der Ziel-Figure.
Zum anderen ist gca das momentan aktive Koordinatensystem - und ein Koordinatensystem wird dadurch aktiv, dass du es anklickst. Du versuchst also ein Koordinatensystem in sich selbst zu kopieren, und das geht nun wirklich nicht.
Code:
neu = copyobj(handles.axes1, figure2);



Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
dasta
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 01.03.11
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 06.05.2011, 07:35     Titel:
  Antworten mit Zitat      
Gut zu wissen. Aber trotzdem funktioniert das nicht.

Code:
figure % öffnet neues Plotfenster
neu = copyobj(handles.axis1, figure 1);
 


Da bekomme ich als Fehler folgendes:
Code:
Undefined function or variable 'figure1'.
 


Ich hab auch schon folgendes vesucht:
Code:
new_window = figure;
neu = copyobj(handles.axis1, new_window);
 

Außer dass nichts passiert, außer sich ein leeres Fenster öffnet.


Grüße
Dasta
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.05.2011, 08:28     Titel:
  Antworten mit Zitat      
Hallo,

es muss natürlich ein Handle auf die Figure übergeben werden; der letztere Ansatz wäre also sinnvoll.

Mini-Beispiel:
Code:
f1 = figure;
ax1 = axes;
plot(ax1, rand(10,1))

f2 = figure;
h2 = copyobj(ax1, f2);


Die Handles heißen normalerweise handles.axes1. Ich weiß aber nicht, ob es daran liegt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
dasta
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 01.03.11
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 06.05.2011, 08:50     Titel:
  Antworten mit Zitat      
Danke für deinen Vorschlag.

Das Beispiel funktioniert auch Smile, aber wenn ich es auf meins anwenden will krieg ich bei der "Kopie" von Axes1 kein Ergebniss. Lass ich mir das Bild/Graphen von Axes2 in einem neuen Fenster ausgeben, wird das gemacht.
Sehr merkwürdig.

Hat das vielleicht was damit zu tun, dass ich die Axes1 innerhalb einer GUI-Funktion fülle und die Axes2 wird durch eine andere Funktion(nicht in GUI) gezeichnet und nur aufgerufen in der GUI?

Dasta
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.05.2011, 16:02     Titel:
  Antworten mit Zitat      
Hallo,

es ist eine "dumme" Kleinigkeit.
Setze mal bei deinem axes die Eigenschaft 'NextPlot' auf 'Add'.
Dann sollte es gehen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
dasta
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 01.03.11
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 09.05.2011, 07:09     Titel:
  Antworten mit Zitat      
Hallo Harald,

also wenn ich das Fenster, welches sich dann öffnet vergrößere (vorzugsweise auf Maximalgröße des Fensters), dann sehe ich meinen Plot. Nur halt nicht in dem kleinen Standardfenster. Aber er ist da und dass ist die Hauptsache.

Danke für deine Hilfe.

Dasta
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 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.