|
|
|
Benötige Hilfe bei Funktionen und ihre Aufrufe |
|
| pooz |

Forum-Anfänger
|
 |
Beiträge: 49
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2011, 11:41
Titel: Benötige Hilfe bei Funktionen und ihre Aufrufe
|
 |
Hallo,
ich benötige Hilfe beim Strukturieren von Funktion / Skripten.
Ich habe eine Funktion geschrieben, die am Anfang eine Initialisierung macht (einige Variablen setzt und alloziieren) und danach einen Algorithmus abarbeitet.
Nun möchte ich um den Algorithmus eine Schleife machen, aber die Initialisierung einmal ausführen.
Jedoch soll nun von außen diese Initialisierung aufgerufen werden und ebenso soll die Schleife des Algorithmus von außen ablaufen.
Wie kann ich das machen?
Über jede Hilfe wäre ich sehr dankbar.
Gruß
Pseudo-Code:
|
|
|
|
|
|
| steve |

Ehrenmitglied
|
 |
Beiträge: 2.029
|
 |
|
 |
Anmeldedatum: 03.09.07
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: R2024a
|
 |
|
|
 |
|
Verfasst am: 05.12.2011, 12:13
Titel:
|
 |
Moin,
spontan hast du zwei Möglichkeiten:
- Du machst zwei Funktionen draus und rufst beide separat auf:
oder
- du packst den Algorithmus gleich in eine Schleife und übergibst mit dem Funktionsaufruf noch die Anzahl der Durchläufe (allerdings werden dann evtl. immer die Ergebnisse des letzten Laufes für den nächsten verwendet - je nachdem was du haben willst...):
Diese Lösung finde ich persönlich aber weniger elegant - kommt halt darauf an, was genau dein Ziel ist...
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?
|
|
|
|
| pooz |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 49
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2011, 12:27
Titel:
|
 |
Moin Alex,
vielen Dank.
zu 1)
Verstehe ich das richtig, dass 'Init' dann alle meine initialisierten Variablen enthält und die Algorithmusfunktion diese nur deshalb sehen kann, weil diese übergeben werden?
Falls ja: Ist 'Init' dann eine Struktur? Ich wollte ungern den Algo-Code aufblähen, indem ich immer den Strukturnamen mit anschließendem Dereferenzierungspunkt vor jede Varible schreib Das wird deutlich unleserlicher.
zu 2)
Ich wollte der Algo-Funktion die Daten immer nur Portionsweise übergeben, da der Ursprungsvektor äußerst riesig sein kann --> RAM-Probleme
(Zur Info: Der Ursprungsvektor wird außerhalb von MATLAB in Blöcke unterteil und anschließend an MATLAB übergeben. Ich steuer das aus MS Visual Studio in C++ an.)
|
|
|
|
| steve |

Ehrenmitglied
|
 |
Beiträge: 2.029
|
 |
|
 |
Anmeldedatum: 03.09.07
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: R2024a
|
 |
|
|
 |
|
Verfasst am: 05.12.2011, 12:33
Titel:
|
 |
Moin,
zu 1.)
Ja, das ist richtig.
Wenn du den Code nicht aufblähen willst dann kannst du zu Beginn der Funktion, die einzelnen Variablen auch wieder zurückschreiben:
zu 2.)
Ich verstehe. Dann solltest du evtl. zur ersten Methode greifen - ich denke, die ist dann am sinnvollsten - auch was die "Pflege" angeht.
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?
|
|
|
|
| pooz |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 49
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.12.2011, 12:40
Titel:
|
 |
Gibt es nicht noch eine Möglichkeit, das wie eine Klasse zu behandeln? Ich habe mal MATLABs OO-Programmierung angeschaut, das wäre das was gut passen würde. Allerdings: Auf die initialisierten Variablen in der Init-Funktion (mit dem schönen Namen 'Properties') müsste ich dann auch über den Dereferenzierungsopertor zugreifen. ==> Bläh.
Aber genau dieser Punkt wundert mich, denn: Das wären doch sozusagen "Membervariablen", welche die Klasse von Natur aus sehen kann? (Jedenfalls in C++ ist das so)
EDIT Hatte hier mal vorsichtig nachgefragt http://www.gomatlab.de/viewtopic,p,81329.html#81329
Oder Alternativ: Gibt es da was mit Nested- oder Subfunctions? Irgendwelche Scope-Tricks?
Besten Dank für deine Hilfe.
|
|
|
|
| pooz |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 49
|
 |
|
 |
Anmeldedatum: 04.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.12.2011, 13:54
Titel:
|
 |
Gibt es weitere Gedanken, die helfen könnten?
Danke und Gruß
po²z
|
|
|
|
|
|
|
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.
|
|