|
|
Funktion aus anderem m-File aufrufen |
|
Zenon |

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.06.2010, 16:03
Titel: Funktion aus anderem m-File aufrufen
|
 |
Hallo,
mittlerweile ist mein m-File so angewachsen, dass man vor lauter Funktionen den überblick verliert. Deshalb wollte ich ggf. den ganzen Spaß in mehrere m-Files aufteilen die thematisch zusammengehören. Wie man m-Files aus m-Files heraus aufruft weiß ich, aber wie läuft das hier mit dem Funktionsaufruf?
Wenn ich z.B. in meinem Hauptfile das Unter-File UP1.m aufrufe, kann ich im folgendenen dann einfach auf Funktionen die in UP1.m stehen zugreifen?
Gibt es geschicktere Möglichkeiten?
Gruß,
Zenon
|
|
|
|
|
steve |

Ehrenmitglied
|
 |
Beiträge: 2.029
|
 |
|
 |
Anmeldedatum: 03.09.07
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: R2024a
|
 |
|
|
 |
|
Verfasst am: 01.06.2010, 16:14
Titel:
|
 |
Moin,
solange es keine "nested functions" also verkettete Funktionen sind, kannst du jede Funktion in ein einzelnes m-file packen und dann so wie immer aufrufen.
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Zenon |
Themenstarter

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2010, 10:02
Titel:
|
 |
Das diese Möglichkeit besteht weiß ich, aber 50 Einzel-M-Files dienen meines Erachtens nicht unbedingt der Übersicht... Ich möchte z.B. die fünf Funktionen, die sich irgendwie mit dem Auswerten von XML-Files beschäftigen in die Datei XMLfcn.m ablegen und dennoch in meiner main.m darauf zugreifen können...
|
|
|
quant82 |

Forum-Fortgeschrittener
|
 |
Beiträge: 97
|
 |
|
 |
Anmeldedatum: 30.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.06.2010, 10:13
Titel:
|
 |
naja sowas könnte man auch objektorientiert lösen, ansonsten ist es glaub ich doch ok was übersicht angeht wenn du es in getrennte mfiles legst
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 02.06.2010, 10:37
Titel:
|
 |
Hallo
Es wird zwar übersichtlicher in Ordner, aber die M-File Aufbau wird komplexer und vielleicht unleserlich.
Also du muss Kopffunktion in M-File definieren, die Eingaben an gewünschte Funktion weiterleitet.
Das kann man über FEVAL oder SWITCH bewerkstelligen.
Definition in M-File abspeichern
Aufruf:
Zuletzt bearbeitet von denny am 02.06.2010, 10:58, insgesamt 2-mal bearbeitet
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.06.2010, 10:46
Titel:
|
 |
Hallo,
eine weitere Variante wäre
Dann muss, wenn die Funktionen verwendet werden sollen, am Anfang der Aufruf gemacht werden.
Danach können die Funktionen über die entsprechenden Handles verwendet werden.
@ denny: nettes Beispiel, aber du schießt dir da ins Knie. Deine Funktion plus berechnet a+b, also plus(a,b) - du bekommst also einen rekursiven Aufruf, wenn du das testest Deswegen habe ich meine Funktion mangels größerer Kreativität "und" genannt.
Grüße,
Harald
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 02.06.2010, 10:54
Titel:
|
 |
Harald hat Folgendes geschrieben: |
@ denny: nettes Beispiel, aber du schießt dir da ins Knie. Deine Funktion plus berechnet a+b, also plus(a,b) - du bekommst also einen rekursiven Aufruf, wenn du das testest Deswegen habe ich meine Funktion mangels größerer Kreativität "und" genannt.
Grüße,
Harald |
Danke Harald, hast ja recht. Kracht ja wirklich wg. Rekursionslimit. Habe leider nicht getestet.
Edit: Okay habe jetzt verstanden, MINUS, PLUS, TIMES ... sind reservierte Funktionen, deswegen wohl dieser Nebeneffekt: Aufruf von sich selbst
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.06.2010, 11:05
Titel:
|
 |
Hallo,
in Antwort auf den uneditierten Post:
Ich würde diese Funktionen (plus, minus, mtimes, times etc.) nur dann verwenden, wenn du Overloading im Rahmen von Objektorientierung beabsichtigst.
Ansonsten... stelle dir vor, du hast eine Funktion
in deinem Ordner, die irgendwas macht. Wenn du nun in einer anderen Datei x*y verwendest, wird dadurch diese Funktion aufgerufen. Ich denke, dass das in den seltensten Fällen beabsichtigt ist. Zumindest muss man sich aber sehr stark Gedanken machen, ob man das wirklich will.
Eine Liste der aus diesem Grund zu vermeidenden Funktionsnamen gibts hier:
Auf manche würde man wohl nie kommen, aber beispielsweise POWER könnte man auch im Zusammenhang mit Elekrizität sehen. Und dann kann ich nur sagen: Achtung Hochspannung - Lebensgefahr für Programmierer!!
Grüße,
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.
|
|