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

Punkte in Graphen einzeichnen

 

T_Meister
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 18.04.2012, 15:59     Titel: Punkte in Graphen einzeichnen
  Antworten mit Zitat      
Hallo Leute,

ich habe mal ein paar Fragen zum plotten. Ich habe Messdaten, die ich in eine Axes plotte. Soweit alles klar. Ich habe 4 PopUps an deren Einträge ich Markierungen im Plot kopplen möchte.

So kann ich z.B. an einem Minimum einen Punkt über:

Code:
plot(55.12,-0.01853,'LineStyle','none','Marker','o','Markersize',10,'Color','k');  
        axes(handles.axes5);
        hold on;


einzeichnen. Jetzt möchte ich aber, falls der Popupeintrag geändert wird, der Punkt gelöscht wird. Gibt es so einen Befehl? Gibt es neben dem Einzeichnen von Punkten auch die Möglichkeit Kürzel mit einzufügen, z.B. KP1?

Viele Grüße
Thorsten
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: 18.04.2012, 16:39     Titel:
  Antworten mit Zitat      
Hallo,

Handle abspeichern:
Code:


Und bei Bedarf
Code:


Wie immer bei GUIs musst du natürlich dafür sorgen, dass das Handle da verfügbar ist, wo du es brauchst.

Text hinzufügen:
Code:

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 18.04.2012, 16:41     Titel:
  Antworten mit Zitat      
Hallo Harald,

erstmal vielen Dank für deine schnelle Antwort,
ich werds mal ausprobieren.

Viele Grüße
Thorsten
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 19.04.2012, 14:51     Titel:
  Antworten mit Zitat      
Es scheint so noch nicht so zu funktionieren, wie ich das gerne hätte. Ich habe Punkte mit Pop-Einträgen verknüpft.
Code:

switch get(handles.(info_KP),'Value')
    case 1
       axes(handles.axes5);
       hold on;      
       p=plot(8.19, -3.4964,'LineStyle','none','Marker','o','Markersize',10,'Color','r');      
    case 2
       axes(handles.axes5);
       hold on;      
       p=plot(2.87, -0.2051,'LineStyle','none','Marker','o','Markersize',10,'Color','r');
       p=plot(5.66, -3.462,'LineStyle','none','Marker','o','Markersize',10,'Color','r');      

 


Die Punkte werden alle korrekt in den Plot "gemalt". p ist auch als variable im Worspace vorhanden. Jetzt möchte in einer schon angefertigten PoP Veränderung einfließen lassen:

Code:
if (exist('p','var'))            
         delete(p);
         end


Aber nix passiert. Kein Fehler, aber auch leider verschwindet nicht der eingezeichnete Punkt. Hast/Habt du/ihr einen Rat dafür?

Viele Grüße
Thorsten
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 20.04.2012, 10:56     Titel:
  Antworten mit Zitat      
Zweckes Verdeutlichung noch zwei Fotos. Der Grundplot bleibt der selbe, nur die Punkte können sich ändern.

Zustand_mit_Punkt.JPG
 Beschreibung:

Download
 Dateiname:  Zustand_mit_Punkt.JPG
 Dateigröße:  22.24 KB
 Heruntergeladen:  521 mal
Zustand_clean.JPG
 Beschreibung:

Download
 Dateiname:  Zustand_clean.JPG
 Dateigröße:  22.71 KB
 Heruntergeladen:  455 mal
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: 20.04.2012, 12:00     Titel:
  Antworten mit Zitat      
Hallo,

ich sehe nicht, wo das Problem liegt. Man bräuchte wohl reproduzierbaren Beispiel-Code.

Grüße,
Harald
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: 21.04.2012, 22:13     Titel:
  Antworten mit Zitat      
Hallo T_Meister.

Mir wird die Frage noch nicht klar. Für den "case 2"-Teil wird "p" ja überschrieben, woraufhin der erste Handle ja nicht mehr gelöscht werden kann.

Statt "axes(handles.axes5); hold on;" könntest Du einfach "line" verwenden und "handles.axes5" als Parent-Eigenschaft angeben.

Grundsätzlich lassen sich solche Probleme mit dem Debugger erforschen. Setze einen Break-Point in die entsprechenden Zeilen und prüfe, ob "p" gefunden wird und ob es ein gültiger Handle ist.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 23.04.2012, 15:00     Titel:
  Antworten mit Zitat      
Hallo,

ich habe mir nochmal Gedanken gemacht, bin aber leider nicht schlauer geworden. Ist es richtig, das der Plot als Zahl abgespeichert wird, z.B. 8,124? So finde ich die Werte in meinem Workspace wieder. Wie gewünscht, der Code, ich habe den Umfang deutlich herabgesetzt, aber was wichtig ist, ist dabei. Prinzipiell wird alles (POP-Einträge) über die Auswahl_X2 gesteuert. Die Beispiel.mat enthält nur einen "Grundgraphen" der bei Beginn erscheint.
Ich hoffe sehr, dass du/ihr mir bei diesem Problem helfen könnt.

Viele Grüße
Thorsten

PS: Verwendbar sind nur die ersten beiden POP Einträge, sollte aber reichen um das Problem zu verstehen.

Beispiel.zip
 Beschreibung:

Download
 Dateiname:  Beispiel.zip
 Dateigröße:  64.19 KB
 Heruntergeladen:  366 mal
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: 23.04.2012, 20:26     Titel:
  Antworten mit Zitat      
Hallo,

der Code von KP_Auswahl_X2.m wirkt mir etwas unübersichtlich.

Ich konnte bis jetzt aber mit dem Debugger feststellen, dass die Zeile, in der gelöscht werden soll, zumindest bei meinen Tests nicht erreicht wird. Dann wird natürlich auch nichts gelöscht.

Ich würde auch empfehlen, den Code zu kommentieren, damit andere und auch nach eventuellen Unterbrechungen du selbst verstehst, was hier passiert.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 24.04.2012, 09:46     Titel:
  Antworten mit Zitat      
Hallo,

erstmal vielen Dank, dass ihr euch mit meinem kleinen Programm auseinander gesetzt habt. Ich habe aktuell folgenden Fehler durch das Debuggen rausgefunden. Der Plot soll statt einer Variablen p in die Zelle graph geschrieben werden.

Code:
graph = cell(1,4);
graph{selectedpopup}=plot(...)


selectedpopup wird voher durch das jeweilig gewählte POP definiert. Sobald der Code schreibt er korrekt den Werte in die Zelle. Nach erneuter Ausführung ist der Wert aber Weg, er wird also nicht korrekt gespeichert. habt ihr eine Idee woran das liegt. Zumal die ausgabe Zellen alle korrekt ablaufen.

Ich habe nochmal eine kommentierte Version der Auswahl beigefügt.

Viele Grüße
Thorsten

Edit: Ich habe es nochmal mit anderen Variablen probiert, aber leider das selbe Phänomen. Nach erneuter Codeausführung wird die Variable gelöscht. Somit ist auch klar, dass es dann nicht korrekt weitergehen kann. Bin sehr dankbar für Tipps...

KP_Auswahl_X2.m
 Beschreibung:

Download
 Dateiname:  KP_Auswahl_X2.m
 Dateigröße:  3.18 KB
 Heruntergeladen:  329 mal
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: 24.04.2012, 18:57     Titel:
  Antworten mit Zitat      
Hallo,

du hast in deiner KP_Auswahl_X2.m mehrere assignin-Befehle, aber du holst dir nie was zurück.

Zeile 11:
Code:
graph = cell(1,4);

wird nie überschrieben bis Zeile 34ff.

Also ist es nicht erstaunlich, dass graph leer ist. Und wo nichts ist, kann nichts gelöscht werden.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 24.04.2012, 21:51     Titel:
  Antworten mit Zitat      
Hallo,

ich weiß zwar nicht ob ich dich richtig verstanden habe aber zumindest dass nix zu löschen geht was nicht da ist. Das habe ich mit dem Debugger auch rausgefunden. Aber vielleicht kannst du mir fürs Verständnis helfen.
Meine Gedanken zum Code (durchgegangen mit Debugger):

- 4 POPUps, so dachte ich, dass jeweils der Plot-Wert zum zugehörigen POP gespeichert wird, dafür sollte die Zelle sein.

-Programm läuft durch und speichert am Ende korrekt den Wert in die vorgegebene Zelle des Cell-Blogs.

-Wird der Code erneut durch irgendein Pop ausgeführt, ist der Cell-Blog wieder leer und das Spiel geht wie im vorherigen Schritt wieder von vorn los.

So sollte es sein:

Auch nach dem Durchlauf des Code sollte der Plotwert gespeichert werden/bleiben, sodass immer der aktuelle plotwert des jeweiligen POPUps in der Zelle verbleibt. Der Vergleich der Voher Nacher POPEinträge soll ja dann darüber bestimmen, ob der Plot gelöscht wird oder eben nicht (hier hapert es ja scheibar, da es keinen gespeicherten Plotwert gibt)

Hättet ihr/du dazu noch ein paar Tipps, wie der Plotwert gespeichert bleibt?

Viele Grüße
Thorsten
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: 25.04.2012, 18:55     Titel:
  Antworten mit Zitat      
Hallo,

ich kann dir leider nicht folgen.
Letztlich solltest du dein eigenes Programm inzwischen auch besser als jeder andere kennen und daher selbst am besten wissen, wo das Problem liegt.

Wie gesagt: in Zeile 11 wird graph als ein leeres Cell Array angelegt. Da danach nichts daran geändert wird, bleibt es leer. Was du da nun ändern, musst, kann ich dir nun zunächst auch nicht sagen.

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 25.04.2012, 21:40     Titel:
  Antworten mit Zitat      
Hallo,

vielleicht ist alles gar nicht so kompliziert und meine Aussage trifft es leider nicht aud den Punkt.

Ich verstehe das so, ich lege das leere Cell Array an, soweit klar. Dann läuft der Code durch und durch den POP-Eintrag wird dann doch ein Wert in die entsprechende Zelle geschrieben. Das heißt selecetedpopup wird ja schon an die Auswahl übergeben, nehmen wir mal an 1. Dann sollte doch der Wert graph{selectedepopup}=graph{1} heißen und den Wert bzw plot in die erste Zelle schreiben. Also graph{1}=plot(...) . Dann wird doch ein Wert geschrieben oder sehe ich das falsch? Zumindest erscheint eine Zahl. Die löscht sich aber, wenn das Programm von vorne durchläuft und bleibt nicht erhalten.

Viele Grüße
Thorsten
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: 25.04.2012, 22:05     Titel:
  Antworten mit Zitat      
Hallo,

durch das Popup wird die Auswahl-Funktion aufgerufen. In dieser erstellst du ein leeres Cell Array, und machst nichts damit. Da hilft alles, was vorher vielleicht passiert ist, nichts.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.