|
|
mehre Funktionen in einem m-file |
|
GregPhil |

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 06.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.05.2011, 19:47
Titel: mehre Funktionen in einem m-file
|
 |
|
 |
|
Hallo Zusammen,
ich bräuchte einen Tip wie ich das folgende Problem lösen kann:
Da mein Applikation etwas größer geraten ist und nun mehrere m-files umfasst, habe ich mir der Übersichtlichtswillen einige Helper-Funktionen geschrieben (recht trivial um Variablen zu setzen und den aktuellen Wert abzufragen ). Ich habe diese in ein separates M-File gepackt und möchte von mehreren Stellen im Programm darauf zugreifen.
Ich habe nun schon irgendwo gelesen, dass man in Matlab nicht auf mehrere Funktionen die sich in einem m-files befinden,von einer anderen Funktion, welche sich in einem separaten M-file befindet, zugreifen kann. Es ist nur der Zugriff auf mehrere Funktionen möglich, wenn sich diese im gleichen File befinden (Subfunctions) oder nur auf eine, die auch den Namen des m-Files hat.
Leider kann ich meine Helper-funkionen nicht als Subfunctions einbetten, weil ich gerne von Funktionen darauf zugreifen, die sich nicht alle in ein dem selben m-file befinden.
Die einzige Alternative auf die gestoßen bin, bestünde darin die Funktionen in einer Klasse einzubetten. Aber dann habe ich wieder ein Klassen-Objekt, dass ich zwischen den Funktionen die sich in den verschiedenen m-files befinden hin und her reichen muss.
Wie löse ich denn so etwas am elegantesten?
beste Gruesse
Gregor
|
|
|
|
|
tompie |

Forum-Guru
|
 |
Beiträge: 260
|
 |
|
 |
Anmeldedatum: 19.09.07
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: immer alles
|
 |
|
|
 |
|
Verfasst am: 10.05.2011, 11:24
Titel:
|
 |
|
 |
|
Hallo,
ich glaube schon, daß man auf mehrere Funktionen, die sich in einem anderen m-File befinden, zugreifen kann. Man kann sich ja zur Laufzeit ein function-handle auf so eine Sub-Funktion erzeugen. Das Zauberwort heißt
.
Ich habe mir z.B. mal einen Eventhandler geschrieben (das sind Funktionen, die auf bestimmte Events in Objekten reagieren), der aus einem einzigen m-File besteht, in dem alle diese Event-Funktionen gesammelt sind. Also ganz ähnlich wie Dein Helper-Problem.
Die ersten Zeilen dieser Funktion sollten ungefähr so aussehen:
Wenn man jetzt im aufrufenden Programm eine dieser Sub-Funktionen aufrufen möchte, geht das in diesem Beispiel wie folgt:
Der Handle der Subfunktion wird also erst zur Laufzeit zusammengebaut und erhält dadurch den richtigen Kontext. Die Subfunktion hat in diesem Beispiel den Namen 'ImageCombo1_Click'. Der Befehl str2func baut dann zur Laufzeit daraus einen function handle, der vom aufrufenden Programm gesehen werden kann.
Hoffe, ich habe mich einigermaßen verständlich ausgedrückt.
Gruß tompie
|
|
|
GregPhil |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 06.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.05.2011, 11:52
Titel:
|
 |
Hallo tompie,
ganz schön tricky, klingt jedoch so als ob es funktionieren wuerde.
Ich probiere es gleich mal aus.
Beste Gruesse und danke schon mal vielmals
Gregor
|
|
|
GregPhil |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 06.12.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.05.2011, 12:39
Titel:
|
 |
Hey tompie...
besten Dank, funktioniert bestens!
Hier mein Code-Schnipsel:
so rufe ich die das ganze dann von wo anders auf:
Danke und ne schoene Woche
Greg
|
|
|
sansa |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.07.2011, 12:20
Titel:
|
 |
|
|
laze |

Forum-Fortgeschrittener
|
 |
Beiträge: 69
|
 |
|
 |
Anmeldedatum: 12.10.11
|
 |
|
 |
Wohnort: Stuttgart
|
 |
|
 |
Version: R2013a
|
 |
|
|
 |
|
Verfasst am: 06.09.2012, 21:24
Titel:
|
 |
Wär ich selbst nie draufgekommen, wahnsinn...stand vor einem ähnlichen Problem und dieser Tipp funktioniert einwandfrei
Danke für den Thread^^
_________________
--Wannabe
|
|
|
|
|
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.
|
|