|
|
Subplots/Plot in GUI je nach Checkbox konstellation erzeugen |
|
NoPlan |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 29.11.08
|
 |
|
 |
Wohnort: Hildesheim
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.11.2010, 11:26
Titel: Subplots/Plot in GUI je nach Checkbox konstellation erzeugen
|
 |
|
 |
|
Liebe Forennutzer,
ich bastel seit einiger Zeit an einem kleinen Tool zur Darstellung von Messwerten. Bisher ergaben sich maximal vier mögliche Diagramme aus unseren Messungen. Da nun allerdings ein neues Messgerät implementiert werden muss, sind bis zu 18 verschiedene Diagramme möglich. Zusätzlich sollen über subplots auch mehrere Diagramme zeitzeitig neben- oder übereinander dargestellt werden.
Das GUI ist so aufgebaut, dass der Benutzer über Checkboxen Haken setzen kann, welches Diagramm bzw. welche Diagramme er angezeigt haben möchte.
Dies habe ich entsprechend umständlich realisiert in dem ich für jede Konstellation einen Fall gebaut habe:
z.B.:
dies war bei den insgesamt nur vier verschiedenen Diagrammen zwar umständlich aber wegen der insgesamt nur 15 kombinationsmöglichkeiten noch möglich.
Für das neue Messgerät mit den bis zu 18 Diagrammen und den sich daraus ergebenden Kombinationsmöglichkeiten würde ich das ganze gerne etwas eleganter lösen um nicht jede einzelne Variante einzeln abarbeiten zu müssen.
Ich bin für jeden Tipp dankbar.
Viele Grüße
Chris.
|
|
|
|
|
Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 30.11.2010, 23:26
Titel:
|
 |
Hallo,
dafür gibt es einige Lösungen., z.B. du erstellt einen Vekor und speicherst ihn in der handles Struktur mit ab, nennen wir ihn "status". Der status Vektor hat 18 Elemente (entspricht den 18 Checkerboxen) und in den Callbacks der Checkboxen weist du dem entsprechenden Feld des status Vektors den Wert 1 zu. Also
Nun kannst du über
die Nummern der Häkchen erfassen, die gedrückt wurden.
Die Plots ließen sich dann etwa so zeichen:
Du köntest aber auch den status-Vektor sparen und z.b. mit dem Befehl;
nach Checkerboxen suchen, die aktiviert sind.
MFG
Sco
|
|
|
katzeh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 17:05
Titel: Frage zur Erstellung des Vektors
|
 |
Ich habe ein ähnliches Problem und hoffe ich kann mich mal ganz dreist an diese Frage ranhängen auch wenn sie schon älter ist.
Ich habe auch eine GUI mit 21 Checkboxen und möchte dann den Vektor, den mir die Checkboxen liefern, abspeichern. Also ein Vektor mit 21 Elementen mit 0 und 1. Wie genau schaffe ich das, dass dieser Vektor abgespeichert wird? (Sorry, bin der totale Matlab-Anfänger)
Tausend Dank!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 15.02.2014, 18:47
Titel:
|
 |
Hallo,
den Ansatz hat Sco ja schon dargelegt. Was nicht explizit da steht:
Am Anfang jedes Callbacks, der mit status arbeitet, sollte status geladen werden mit:
Am Ende jedes Callbacks, der status verändert (also insbesondere die Checkbox-Callbacks), sollte stehen:
Letzteres gilt auch für die OpeningFcn, in der status initialisiert werden sollte.
Mehr Infos gibt es in der Doku von
Grüße,
Harald
|
|
|
katzeh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.02.2014, 14:08
Titel:
|
 |
Vielen Dank, Harald. Aber ich bin glaub ich einfach zu dämlich.
Ich habe in der OpeningFcn versucht des folgende zu initialisieren:
aber da meckert er schon direkt rum. In den Callbacks der checkboxes hab ich dann folgendes gemacht:
Aber wie gesagt, er meckert dann schon rum wegen der initialisierung. Muss da noch irgendwas hin? und wie kann ich am Ende diesen Vektor dann genau rausschreiben, dass ich ihn z.B. aufrufen und mir anzeigen lassen kannn? Es tut mir wirklich leid, ich bin echt schwer von Begriff bei diesen Sachen
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 19.02.2014, 21:35
Titel:
|
 |
Hallo,
Zitat: |
aber da meckert er schon direkt rum. |
Ich nehme an, du sprichst von einer Fehlermeldung. Leider fehlt die entscheidende Information: was ist die Fehlermeldung?
Du musst status natürlich vorher mit dem Anfangsstatus anlegen, z.B.
wenn beim Start der GUIs alle Checkboxen ohne Haken sind.
Generell bitte immer die Fehlermeldungen angeben - man kann sie in der Regel nämlich nicht erahnen.
Grüße,
Harald
|
|
|
katzeh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.02.2014, 11:11
Titel:
|
 |
Oh sorry, die wollte ich natürlich eigentlich mit reingemacht haben.
"Error using GUI>GUI_OpeningFcn
Not enough input arguments."
Das war die Fehlermeldung. Ja, den status hatte ich so auch mit in die OpeningFcn eingebaut (erst nachdem ich den Post geschrieben habe) trotzdem gleiche Fehlermeldung.
|
|
|
katzeh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.02.2014, 17:25
Titel:
|
 |
Ok, ich bin wirklich dämlich, Fehler gefunden.
Falls ich noch eine allerletzte Frage stellen darf, womit mein Problem endgültig gelöst wäre:
Ich habe die GUI und den Vektor, jetzt würde ich gerne noch einen Button haben, den ich, nachdem ich alle Checkboxen ausgewählt habe die ich möchte, drücken kann und dieser Button dann die GUI schließt und den Vektor rausschreibt, so dass ich ihn dann in Matlab aufrufen könnte. Also
>>x und der Vektor wird mir ausgegeben.
Vielen Dank Harald, ich weiß deine Mühe wirklich zu schätzen und bin dir sehr sehr dankbar!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.02.2014, 21:34
Titel:
|
 |
Hallo,
ich empfehle es zwar generell nicht, aber die einzige Möglichkeit ist hier wohl assignin. Etwa so:
Grüße,
Harald
|
|
|
katzeh |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2014, 11:03
Titel: Vielen vielen Dank!!
|
 |
Ich bin dir wirklich unendlich dankbar, Harald. Vielen Dank für deine Geduld und deine Hilfe! Es hat alles geklappt und ich kann in Frieden weiterleben
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2014, 23:16
Titel:
|
 |
Gerne doch :)
Ein schönes Wochenende!
Harald
|
|
|
|
|
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.
|