|
|
Skript --> GUI starten --> Daten aus GUI zurück ans S |
|
terima |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 24.10.2013, 22:11
Titel: Skript --> GUI starten --> Daten aus GUI zurück ans S
|
|
|
|
|
Hallo!
Ich bin neu hier und habe schon einige hilfreiche Beiträge als Gast gelesen, vielen Dank an die engagierten User im Board !!
Leider stehe ich trotzdem noch auf dem Schlauch, auch aus der Matlab-Hilfe und den GUI-Tutorials auf youtube werde ich nicht so richig schlau.
Wahrscheinlich ist das ein reines Anfänger/Syntax-Problem, ich fange gerade erst an für eine Abschlussarbeit mit MATLAB zu arbeiten.
Super Programm, aber man muss eben wissen, wie
Ich hoffe ihr seht über meine Anfänger-Unkenntnis hinweg und könnt mir weiterhelfen.
----------------------------
Jedenfalls hier mein Ansatz:
Ich habe einen Berechnungsalgorithmus, der viel Interaktion mit dem User bedingt.
Es geht u.a. um die Berechnung von Kraftstoffverbräuchen von Bussen auf verschiedenen Buslinien, das nur als Hintergrundinfo.
Die Rechenoperationen und Formeln sind mir alle bekannt. Mein "Problem" ist, dass ich bis jetzt ein Skript geschrieben habe,
das erstmal eine erstellte GUI aufruft. Das klappt auch. Die GUI fragt über Radio-Buttons ab, wieviele Buslinien denn betrachtet werden sollen (siehe Bild).
Nun soll diese Info wieder zurück an das Hauptskript gegeben werden (n_linien), um mit den User-Eingaben zu rechnen bzw. ein neues GUI zu starten (mit weiteren Fragen).
Also in etwa eine solche Reihenfolge:
Skript --> GUI (fragt 1. Bedingung ab) --> GUI schickt Eingaben zurück an Skript --> Berechnungen im Skript
--> Basierend auf den ersten Ergebnissen geht es weiter, entweder neue GUI (mit weiteren Fragen) oder weitere Berechnungen
--> und so weiter.
Ich meine schon rausgelesen zu haben, dass eine GUI eigentlich nur an eine weitere GUI Daten schicken kann, stimmt das?
Ist deswegen mein Ansatz eines Hauptskriptes, dass GUIs und Funktionen je nach Bedarf aufruft und damit weiterarbeitet falsch?
Dieser Ansatz erschien mir irgendwie nachvollziehbar. Meine Vorstellung ist, dass man dieses Hauptskript für den Benutzer später auch ohne MATLAB ausführbar machen kann -
es öffnet sich dann erstmal das erste GUI und so weiter. Die Selbstausführbarkeit ohne MATLAB habe ich in einem Tutorial bez. "deploytool" gesehen.
Ich habe MATLAB Student R2013a - kann es sein, dass ich die Deploy-App für diese Version nicht kaufen kann (finde sie nicht im Shop)?
---------------------------------
Hier das konkrete Problem:
Folgend erstmal der Codeabschnitt der Buttongroup im GUI-.m-file:
Der jeweilige Wert der Variablen "n_linien" soll also zurück in das aufrufende Skript geschickt werden und dort geht es dann mit
Berechnungen etc. weiter. Ist das möglich? Oder sollte ich versuchen, mich von GUI-Funktion zu GUI-Funktion zu "hangeln"
und die Berechnungen in den Funktionen unterbringen?
Sorry, viele viele Fragen =)
Ich danke euch schonmal sehr !!
Beste Grüße,
Kevin
Beschreibung: |
|
Download |
Dateiname: |
Unbenannt.jpg |
Dateigröße: |
21.4 KB |
Heruntergeladen: |
725 mal |
|
|
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 25.10.2013, 09:27
Titel:
|
|
|
|
terima |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.10.2013, 12:48
Titel:
|
|
Hallo denny,
vielen Dank erstmal für deine Antwort!
Ich habe mir das Video angeschaut und es passt eigentlich sehr gut! Nur leider bekomme ich das trotzdem nicht umgesetzt :-/
Ich schätze mal es liegt daran, dass ich eine Radiobutton-Group nutze und im Video eine Checkbox.
Jedenfalls habe ich versucht das umzusetzen und habe mittlerweile folgende Änderungen:
Es kommt immer eine Fehlermeldung wegen
Im Video klappt das so, hier vielleicht nicht wegen der Buttongroup?
Viele Grüße,
Kevin
|
|
|
terima |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.10.2013, 19:17
Titel:
|
|
|
|
|
Soooo, mittlerweile habe ich mehr oder weniger geschnallt, wie das mit den handles funktioniert
Die Übergabe eines Handles von der GUI zurück an mein Skript funktioniert jetzt auch.
Dabei habe ich aus dem Video unter anderem folgende Zeile übernommen:
Davor habe ich in einer anderen Funktion (Radiobutton-Feld) die Variable handles.n_linien mit einem Wert belegt.
Im Hauptskript wird dann einfach wie folgt aufgerufen:
Und ich kann mit dem Wert weiterarbeiten.
-----------------------------------------------------------------------
Und nun geht es weiter in einer neuen GUI, die allerdings diesmal 10 Variablen übergeben soll!
Die GUI habe ich fertig, nur die Übergabe an das Skript klappt nicht so recht. Ich habe die Grundstruktur wie oben angelegt,
nur eben mit mehr Daten. Sieht dann wie folgt aus:
Zuerst habe ich es so versucht, wie noch in den Comment-Zeilen zu sehen ist, aber scheinbar funktioniert das nicht :-/ Wenn ich nun die GUI aufrufe, z.B.
kommt immer folgende Fehlermeldung:
Wahrscheinlich veraffe ich da was in der Syntax / Variablendefinition. Kann mir vielleicht jemand weiterhelfen?
Ich danke euch !!
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 31.10.2013, 23:17
Titel:
|
|
Hallo
die Fehlermeldung heißt, dass das Feld nicht existiert in
varargout{1} = handles.output;
Abhilfe wäre z.B eine Abfrage, ob das Feld existiert
|
|
|
terima |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.11.2013, 18:14
Titel:
|
|
Hallo denny,
super vielen Dank !! Habe das mal implementiert, noch Titus` Tip von hier: http://www.gomatlab.de/handles-in-o.....-aktiviert-ist-t2761.html eingebaut
und dadurch schon einmal die Handle-Übergabe in die Output-Funktion zum Laufen gebracht
Nur noch einen Fehler habe ich entdeckt, die noch zwischen mir und einer fehlerfreien Abfolge steht
Und zwar: Mit Testwerten habe ich in der Outputfunktion mal
belegt. Wenn ich das so ohne Semikolon stehen lasse, werden auch im Command-Window beide Werte wie folgt angezeigt:
Wenn ich aber die GUI wie folgt aufrufe:
wird mir immer nur
angezeigt. Auch wenn ich die Variable "halten_linie_test" als "cell" vorher deklariert habe - nach dem Aufruf wird es immer zu einer
"double"-Variable und nimmt nur noch den ersten varargout-Wert aus der GUI rüber. Weiß auch da vielleicht jemand weiter?
Schon einmal 1000 Dank für eure Hilfe !!!!!!!
Beste Grüße,
noob
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 01.11.2013, 21:44
Titel:
|
|
Hallo
hier wäre vielleicht besser die Ausgabe anders zu gestalten, alles in ein Array zu schreiben.
Aber man kann natürlich auch mehrere Ausgabeparameter in Array ausgeben, dazu muss ein Array mit Werten vorinitialisieren
z.B für die Funktion test
Aufruf wäre dann:
|
|
|
terima |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.11.2013, 16:28
Titel:
|
|
Hi denny,
vielen Dank für deine Hilfe !!
Es klappt nun und geht weiter ))
Beste Grüße,
K
|
|
|
|
|
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 - 2024
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.
|
|