|
|
Plotten von Daten über GUI-Auswahl |
|
Bob |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2010, 14:12
Titel: Plotten von Daten über GUI-Auswahl
|
|
|
|
|
Hallo Leute,
pünktlich zum Wochenende komme ich mit einem neuen Problem. Zu aller erst: Ich bin ungeübter Anfänger.
Ich habe verschiedene zeitabhängige Ströme, Spannungen, Leistungen, usw. in mehreren Matrizen vorliegen, die alle in einem eigenen Unterprogramm berechnet wurden. Aufruf der Unterprogramme erfolgt freilich in einem Hauptprogramm.
Nun möchte ich diese verschiedenen Größen darstellen lassen. Es soll hierbei dem Anwender selbst überlassen sein, welche der Größen er darstellen will. Die Darstellung soll in jeweils eigenem Fenster erfolgen.
Es soll so aussehen, dass ein erneutes GUI aufploppt, das diverse Checkboxes enthält, wo der Anwender seine Wahl treffen kann. Die abfrage dieser Checkboxes gestalte ich mit dem in der Hilfe vorgeschlagenen Code(hier Abfrage für I1):
Mit einem pushbutton soll dann die plot-funktion gestartet werden.
Zuerst war die Idee, die handles-Struktur ans Hauptprogramm zu übergeben und über eine switch-Funktion abzufragen. Ist aber wohl in MATLAB nicht so einfach möglich.
Da ich ca. 35 darstellbare Größen habe, ist eine "35-fache-if-Abfrage" im Hauptprogramm zwar zielführend, aber etwas mühselig.
Wenn ich aber die plot-Befehle in die Callbacks programmiere, plottet MATLAB, sobald ich den Haken setze. Es sollen aber erst alle Fenster der Reihe nach erscheinen, nachdem das Auswahlfenster geschlossen ist.
Ich hab shcon den ganzen Tag mit uiwait, waitfor und weiß der Geier was rumprobiert, aber ich bekomms nicht hin.
Vielen Dank für die Hilfe.
|
|
|
|
|
Bob |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2010, 14:13
Titel: huups..
|
|
es muss natürlich heißen:
else
handles.I1= 0;
...
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 28.05.2010, 14:25
Titel:
|
|
Hallo,
eine Möglichkeit wäre, bei den Plots bzw. der Figure zunächst die Eigenschaft 'Visible' auf 'off' zu setzen. Wenn alles fertig ist, kann man die Eigenschaft 'Visible' der entsprechenden Elemente dann wieder auf 'on' setzen, und es sollte passen.
Grüße,
Harald
|
|
|
Zenon |
Forum-Guru
|
|
Beiträge: 292
|
|
|
|
Anmeldedatum: 20.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2010, 14:34
Titel:
|
|
Der Plotbefehl muss in den Callback vom Pushbutton (hier kannst du auch das Checkboxfenster schließen lassen). beim ändern der Checkboxen schreibst du dir einfach den betreffenden Wertevektor in eine Matrix und übergibst die dann als Y an den plot-Befehl.
Beim Entfernen des Kreuzes musst du dann natürlich die entsprechende Zeile aus dem Vektor löschen...
Dasselbe machst du auch mit den Namen und einem cell array und kannst damit dann die legend füllen...
Eine Alternative zu 35 Checkboxen sind übrigens zwei Listboxen (in einer die Auswahl in der anderen die ausgewählten). Das ist von der Wertezahl variabel (falls nötig).
|
|
|
Bob |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.05.2010, 17:43
Titel: Danke
|
|
Hi,
Danke für die Hilfe.
@ Harald :
Auf die Idee bin ich noch gar nicht gekommen, das wäre nun nen Versuch wert. Aber woher weiß ich, welche Sachen ich geplottet hab, also welche Plots ich den auf visible setzen muss, wenn ich das Fenster lösche. Wie gesagt "Anfänger".
@ Zenon
das funktioniert nur einmal, oder? Und nicht bei max. 35 Fenstern, oder?
Gruß,
Bob
|
|
|
Bob |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.05.2010, 08:52
Titel:
|
|
Okay,
die Idee, die figures auf 'invisible' stellen ist gut, und ich werde sie auch übernehmen. Nur weiß ich wirklich nicht, wie ich die figures dann wieder auf visible stelle. Ich habs mal versucht mit ner for-Schleife im Callback des Plot-Buttons:
handles.AnzahlFigures ist ein Zähler, der hochgezählt wird, sobald ich nen Plot mache. findobj gibt aber nichts zurück, sodass ich immer beim letzten geplotteten Fenster hängenbleib.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.05.2010, 09:21
Titel:
|
|
Hallo,
so gehts, und sogar ohne Schleife:
Grüße,
Harald
|
|
|
Bob |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.05.2010, 09:49
Titel:
|
|
Danke,
na da war ich ja nah dran
|
|
|
|
|
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.
|
|