|
|
Bis zu einer bestimmten Funktion zurückspringen |
|
Paul23 |

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 09.03.20
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 13:23
Titel: Bis zu einer bestimmten Funktion zurückspringen
|
 |
Hallo,
habe folgendes Problem:
Ich rufe aus der main-Funktion eine Funktion 1 auf die wieder eine FUnktion 2 aufruft. Wenn nun in Funktion 2 eine bestimmte Bedingung erfüllt ist, würde ich gerne in die Main-Funktion zurückspringen und ihr ein Array übergeben.
Habe es momentan mit Exceptions versucht. D.h. wenn einebestimmte Bedingung erfüllt ist, wird in der Funktion 2 eine Exception geworfen, die in der Main-Funktion gefangen wird. Aber so viel ich weiß, kann man da kein Array mit übergeben, oder?
Falls nicht, fällt auch eine andere Lösung ein?
EDIT: Was mit gerade noch eingefallen ist, ist mit Exceptions und globalen Variablen zu arbeiten - was aber kein schöner Programmierstiel ist. Bin also für weitere Vorschläge offen
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 13:55
Titel:
|
 |
Hallo,
mein Vorschlag wäre, unter dieser Bedingung Funktion 2 zu beenden und das Array sowie, falls nötig, eine Statusinformation an Funktion 1 zurückzugeben. Funktion 1 reagiert entsprechend und reicht diese Informationen an main weiter.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Paul23 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 09.03.20
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 14:23
Titel:
|
 |
Hallo, danke für deine Hilfe.
Bei mehr als 2 Funktionen dazwischen (was bei mir leider der Fall ist) wird das leider etwas umständlich.
Hättest du eventuell noch eine andere Idee?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 14:38
Titel:
|
 |
Hallo,
sollte es sich um eine Benutzeroberfläche handeln: den Status in Funktion 2 in eine Eigenschaft schreiben und diese Eigenschaft in der main abfragen.
Ansonsten erscheint mir die try-catch - Lösung noch das sinnvollste.
Die Programmstruktur ist aus meiner Sicht sehr ungewöhnlich. Darüber könnte man auch nochmal nachdenken.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Paul23 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 09.03.20
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 14:45
Titel:
|
 |
Harald hat Folgendes geschrieben: |
Hallo,
sollte es sich um eine Benutzeroberfläche handeln: den Status in Funktion 2 in eine Eigenschaft schreiben und diese Eigenschaft in der main abfragen.
Grüße,
Harald |
Interessant (habe ich tatsächlich im Einsatz), leider verstehe ich noch nicht ganz wie du das meinst.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 15:03
Titel:
|
 |
Hallo,
im Falle von App Designer: du kannst die Eigenschaften überall setzen.
im Falle von GUIDE: ich würde setappdata / getappdata verwenden, siehe auch
https://de.mathworks.com/help/matla.....data-among-callbacks.html
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Paul23 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 09.03.20
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 15:14
Titel:
|
 |
Ich glaube ich komme noch nicht ganz mit .
Was du meinst ist, dass Funktion 2 eine GUI ist, die aus der main über eine Funktion 1 aufgerufen wird, oder?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 15:18
Titel:
|
 |
Hallo,
üblicherweise ist main die GUI.
Letztlich liegt es aber an dir zu sagen, was bei dir was ist und vor allem: ob die GUI mit GUIDE, App Designer oder ganz anders erstellt wurde.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Paul23 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 09.03.20
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 16:14
Titel:
|
 |
Ok, wenn main die GUI ist:
Dann schreibe ich in Funktion 2 das Array in ein Feld der GUI und lese es dann in der GUI aus? Oder was meinst du in diesem Zusammenhang mit "Eigenschaft"?
EDIT: GUI via AppDesigner
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 17:09
Titel:
|
 |
Hallo,
genau. Eine App hat ja Eigenschaften (Properties). Du würdest app an Funktion 2 übergeben und in app eine selbst festgelegte Eigenschaft wie app.myprop oder eine Eigenschaft in einer Komponente wie app.component.property setzen. Das Array würde ich auf jeden Fall in eine selbst festgelegte Eigenschaft schreiben.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Paul23 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 09.03.20
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 18:26
Titel:
|
 |
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.03.2020, 22:41
Titel:
|
 |
Hallo,
ganz genau.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Paul23 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 09.03.20
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2020, 16:56
Titel:
|
 |
Vielleicht noch kurz zu den Exceptions.
Habe es mal auf die Schnelle so probiert.
Problem: Es werden alle Fehlermeldungen gefangen.
Ich würde aber gerne nur meine Exception fangen, sodass das Programm bei anderen Fehlermeldungen wie bspw. nicht passenden Dimensionen weiterhin abstürzt.
Mein Code:
In der Funktion 2:
In main:
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.496
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.03.2020, 17:27
Titel:
|
 |
Hallo,
das widerspricht dem generellen Konzept von try-catch, nicht nur in MATLAB.
Der Ansatz von gestern mit Eigenschaften in einer App erscheint mir der sinnvollere.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Paul23 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 09.03.20
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.03.2020, 17:30
Titel:
|
 |
Ok, danke!
EDIT am Rande: Falls jemand ein änliches Problem hat mit den Exceptions: Hab eine triviale Lösung gefunden
|
|
|
|
|
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.
|
|