|
|
Redefine, redeclare einer Funktion |
|
iammrvip |

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.07.12
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2009b, 7.9.0.529, 64-bit, maci64
|
 |
|
|
 |
|
Verfasst am: 24.07.2012, 11:51
Titel: Redefine, redeclare einer Funktion
|
 |
Hallo.
Ich habe folgendes Problem: Ich habe zur Berechnung 3 Verfahren, die jeweils sehr parallel ablaufen. In allen Skripte heißen alle Funktionen gleich, nur der Inhalt innerhalb der Funktionen weicht für verschiedene Berechnungsmethoden ab. Auch die "Haupt"funktion ist immer dieselbe.
Ich habe also z.B. eine Datei get_tetras_in_liquid.m mit der Funktion
Nun möchte ich eine main.m schreiben, der die drei Möglichkeiten übergeben werden können und dann etwas à la
Wenn Input = 'tri' ersetze get_tetras_in_liquid.m durch diese Funktion get_tetras_in_liquid_irgendwas
also
Ist das mit Matlab irgendwie möglich?
(Ich hätte eben gern vermieden, jeder Funktion wieder eine Variable zu übergeben zu müssen und dann Fallunterscheidungen in den entsprechenden *.m-Dateien zu machen....)
|
|
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2012, 20:17
Titel:
|
 |
|
|
iammrvip |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.07.12
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2009b, 7.9.0.529, 64-bit, maci64
|
 |
|
|
 |
|
Verfasst am: 25.07.2012, 22:32
Titel:
|
 |
Vielen Dank, das löst aber nicht direkt mein Problem.
Das Problem war eher: Definiere ich die function handle, dann bin ich aber gezwungen die Variablen global zu setzen (sonst kommen wir wieder zum selben Problem) oder ich muss sich komplett durch sämtliche Skripte und Funktionen durchreichen. Genau Letzteres wollte ich vermeiden.
Also im Moment schaut das ganze so aus
wobei tetras_in_liquid als globale Variable definiert wurde und die zweite (da nur einmal) mit übergeben wird.
Ich wollte gern die globale Variable aus bekannten Gründen vermeiden und nur für den jeweils gültigen Bereich der If Anweisung die Funktionen ändern.
Beste Grüße
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.07.2012, 23:40
Titel:
|
 |
Hallo,
prinzipiell besteht immer das Problem, dass bestimmte Parameter
durchgeschleift werden müssen. Irgendwie muß ja die innerste
Funktion wissen, welches Deiner Verfahren angewendet werden soll.
Du könntest in Richtung objektorientierter Programmierung gehen,
die Funktionen, die immer gleich sind in einem Elternobjekt definieren
und die Funktionen, die sich unterscheiden, in mehreren abgeleiteten
Objekten implementieren. Das würde die Struktur Deines Skripts
natürlich völlig verändern und je nachdem, ob Du schon in anderen
Programmiersprachen OOP-Erfahrung hast, kann es ziemlich harte
Kost zum Einlernen sein.
Grüße
Sirius
|
|
|
iammrvip |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.07.12
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2009b, 7.9.0.529, 64-bit, maci64
|
 |
|
|
 |
|
Verfasst am: 26.07.2012, 07:39
Titel:
|
 |
Ok ist glaube ich die sauberste schnellste Lösung. Danke euch.
|
|
|
|
|
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.
|
|