|
|
Aufruf von nested functions |
|
DerBesteMensch |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 03.07.11
|
 |
|
 |
Wohnort: Lummerland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 11:30
Titel: Aufruf von nested functions
|
 |
Hallo,
Beim Aufruf des folgenden Programms erhalte ich die Fehlermeldung "It is not possible to obtain a function handle from a variable, namely func":
Ich möchte außerhalb der Funktion func auf die nested function nested in func zugreifen. Geht das überhaupt und wenn ja wie? Falls es nicht funktionieren sollte, gibt es dann Alternativvorschläge?
|
|
|
|
|
programmierferkel |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 02.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 12:10
Titel:
|
 |
Ahoi mein bester,
ich glaube nicht, dass das geht - aber ich bin da keien Referenz. Ich glaube du kannst nur an eine Funktion ein Argument übergeben 'y=func(arg)' und erhälst als Antwort 'y'. Ich glaube ALLES was in der Funktion passiert darauf hast du keinen Zugriff. Warum willst du die Funktionen überhaupt verschachteln? Du kannst sie einfach nacheinander schreiben. Ansonsten musst du schon bei der ersten Funkion ein zweites Argument übergeben y=f(arg1,arg2).
Deine Syntax verstehe ich jetzt auch nicht. Wenn du schreibst
c = func(2).nested(4) heißt das für mich func ist eine Struktur. Nimm den 4. Eintrag des Feldes nested aus der zweiten Dimension von func.
LG ferkel
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 12:32
Titel:
|
 |
Hallo,
was sollte denn in deinem Fall für c herauskommen?
Anders gefragt: soll nested nun für b=2-a oder für b=4 ausgewertet werden?
Ich würde allein aus Gründen der Übersichtlichkeit von solchen Konstrukten abraten.
Grüße,
Harald
|
|
|
DerBesteMensch |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 03.07.11
|
 |
|
 |
Wohnort: Lummerland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 12:39
Titel:
|
 |
|
 |
|
Danke schonmal für die Antwort,
Natürlich könnte man das mit der Verschachtelung auch komplett lassen und nested einfach als Funktion auf der gleichen Ebene von test und func schreiben. Die Verschachtelung soll einfach ausdrücken, dass nested von seiner Funktion her eben ein "kleiner Teil" von func sein soll und nichts "vollwertig Eigenständiges" wie zB func darstellt.
Das hier angegebene Programm dient auch lediglich zu Demonstrationszwecken um mein Anliegen deutlich zu machen; mir ist schon bewusst, dass das Beharren auf Verschachtelung in diesem Beispiel völlig sinnlos ist, aber es geht wie gesagt ums Prinzip
Bezüglich des Syntax beim Aufruf von nested habe ich mich an meiner Programmiererfahrung in Java orientiert, da man dort geschachtelte Funktionen eben genau so aufruft. Soll bedeuten:
"Rufe func auf mit Eingabe-Argument "2" und rufe dann in func die nested function nested auf mit Eingabe-Argument "4"
Edit:
Herauskommen sollte c = 2, da die Auswertung von nested für b = 4 erfolgen soll
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 13:56
Titel:
|
 |
Hallo,
wie wärs dann damit?
Grüße,
Harald
P.S.: das "2-a" wird dann nirgends verwendet, oder?
|
|
|
DerBesteMensch |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 03.07.11
|
 |
|
 |
Wohnort: Lummerland
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.01.2012, 16:24
Titel:
|
 |
Hey Harald,
Danke für deinen Vorschlag. Hat halt nur den Nachteil, dass func dann nicht mehr benutzt werden kann um x = nested(2-a) zurückzugeben (auch wenn das in meinem Beispiel nicht gebraucht wird).
Aber ich sehe ein, dass mein Problem wirklich sehr konstruiert ist und werde nun doch auf die Verschachtelung verzichten und es auf konventionellem Weg mit nested auf der Ebene von func und test machen.
|
|
|
|
|
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.
|
|