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

Plot verschiebt sich nach der Betätigung eines Pushbuttons

 

seackone
Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 30.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2013, 19:39     Titel: Plot verschiebt sich nach der Betätigung eines Pushbuttons
  Antworten mit Zitat      
Guten Abend!
Bei mir ist es so das ich ein Script geschrieben habe, welches Messwerte von einer Webseite einliest, diese verarbeitet und eine FFT Analyse vornimmt.
Die Ergebnisse werden jeweils mit subplot(2,1,1) bzw. subplot(2,1,2) übereinander dargestellt. Das Figure - Fenster soll im Vollbildmodus mit:

set(plot,.....,'outerposition',[0 0 1 1]) geöffnet werden.

Dazu kommen noch diverse GUI's und hier liegt das Problem: sobald ich irgendeinen Pushbutton anklicke, verschieben sich alle Buttons sowie Textboxen ein kleines stück nach unten. Das Ereignis ist allerdings einmalig. Nur beim ersten klicken, beim weiteren Betätigen der Buttons bleibt alles so wie es ist.

Im Prinzip ist es nicht weiter problematisch, nur hat der erste Plot an der rechten Y - Achse eine zweite Beschriftung, die sich dann verschiebt. Somit werden Fehler beim Ablesen gemacht. Die Plots an sich scheinen sich ein wenig vertikal zu dehnen. Also wirklich minimal.. Leider dehnen die sich nicht genausoviel wie sich der nebenstehende Text verschiebt Wink
Natürlich habe ich auch gesehen, dass es irgendwie möglich ist, die rechte Achsenbeschriftung abhängig vom Plot zu machen und nicht als Textbox darzustellen.

Trotzdem ist meine Frage: Wie kommt es, dass sich alles Verschiebt? Kennt jemand dieses Phänomen? Gibt es eine Möglichkeit das zu beheben?

Wünsche noch einen schönen Abend!

Gruß, seackone
Private Nachricht senden Benutzer-Profile anzeigen


consul
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2013, 15:14     Titel:
  Antworten mit Zitat      
Da ich mich GUI´s nicht wirklich auskenne kann ich nur ein bisschen raten.
Du definierst dir ja die Position deiner Ausgabe (plot) an irgend einem Koordinatenpunkt auf deinem Display.

Wenn du jetzt einen Button betätigst nehme ich einfach mal an er setzt den plot auf einen default Koordinatenpunkt, oder da ist ein anderer Koordinatenpunkt von dir eingestellt.

Grüße consul
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 23.11.2013, 18:25     Titel: Re: Plot verschiebt sich nach der Betätigung eines Pushbutt
  Antworten mit Zitat      
Hallo seackone,

Ohne den Code zu sehen ist es unmöglich zu erraten, woran das liegt. Aber Du kannst es ganz einfach heraus finden. Setze einen Breakpoint in den Callback des Pushbuttons. Dann gehe mit dem Debugger Zeile für Zeile durch den Code bis der beobachtete Effekt auftritt. Damit hast Du den Befehl gefunden, der das Verschieben bewirkt. Wenn dann die Lösung noch nicht auf der Hand liegt, kannst den Code-Block hier posten.

Der Debugger ist wirklich die erste Wahl, wenn man herausfinden möchte, wann der Code was und wo macht.

Viele Grüße, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
seackone
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 39
Anmeldedatum: 30.10.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2013, 06:49     Titel:
  Antworten mit Zitat      
Guten Morgen und vielen Dank erstmal für eure Antworten.

@consul:
Die Plots haben keinen genauen Koordinatenpunkt zugewiesen bekommen, daher gehe ich einfach davon aus, dass sie sowieso auf default gesetzt sind.
Das Ganze läuft ja über "subplot", somit erhalte ich in einer Figure beide Abbildungen (eine oben, die andere darunter).

@Jan S
Den Code posten.. ehm jaa.. wird vielleicht nicht ganz so einfach da das mittlerweile doch etwas verschachtelt ist Wink Aber im Prinzip:

uicontrol(h,'Style','PushButton','Tag','OK_Button',Units','Normalized','Position', [0.2 0.2 0.268 0.154], 'String', 'Accept Canges', 'Callback', @OnOK);

Also eigentlich ganz normal. Ansonsten folgt ja nur die Art des Buttons mit Bezeichnung, Position und Anzeigetext. Dann wird ebend eine Funktion aufgerufen, die gewisse Berechnungen anstellt und schließlich wieder plottet. Wenn ich das Programm starte, wird alles in figure(1) geöffnet. Wenn ich dann über die Pushbuttons Berechnungen anstellen lasse, werden die Ergebnisse wieder in figure(1) ausgegeben, da ich nicht möchte, dass sich so viele Fenster öffnen.
Kann hier aber vielleicht eine Ursache liegen?
Das mit dem Debugger ist jedenfalls eine gute Idee, werde ich mal ausprobieren!

Gruß


Edit:
Ich habe mir ebend jeden Schritt mal mit dem Debugger angeschaut. Das gibts doch gar nicht! Es funktioniert alles wunderbar. Wenn ich das alles einzeln ablaufen lasse, macht er genau das was er soll. Selbst wenn ich auf einen Pushbutton drücke, werde ich an die entsprechende Funktion weitergeleitet und die Ergebnisse werden anschließend geplottet. Nur verschiebt sich hier nix!

Edit2:
Seltsam, hab das alles jetzt ein paar mal durchlaufen lassen und probiert, anscheinend ist jetzt alles so wie es sein soll. Hab gar nix geändert! Wink
mir ist aber aufgefallen das dieser Effekt trotzdem noch auftritt sobald man das Plotfenster maximiert. Eigentlich hatte ich ja schon mit ('outerposition',[0 0 1 1]) angegeben, dass es sich so groß wie möglich öffnen soll.. wenn ich dann allerdings das Fenster trotzdem maximiere, verschiebt es sich wieder.
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.