|
Bianka_F |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 25.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 19:24
Titel: Hilfsfunktion erstellen
|
 |
Hallo Leute,
Ich habe follgendes Funktionsfiles mit der Struktur:
Ich will jetzt innerhalb des Funktion-Files eine Hilfsfunkiton definieren, die die beiden Funktionen fname und hname benutzt. Wie macht man das denn? Wenn ich schreibe:
bekomme ich folgende Fehlermeldung:
|
|
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 20:26
Titel:
|
 |
Also der Threadtitel erscheint mir etwas seltsam.
Kann es sein, dass Du eine Funktion, die Du via Handle (@) übergibst aufrufen willst !?
Schau Dir http://www.mathworks.de/help/techdoc/matlab_prog/f4-70115.html an, d.h. Deine Variable fname enthält dann keinen Wert, sondern eine Funktion.
Falls für fname sowohl ein Handle, wie auch ein Wert möglich sein soll, musst Du das eben intern passend behandeln.
|
|
|
Bianka_F |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 25.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 21:50
Titel:
|
 |
Also ich will innerhalb eines Function-Files eine neue Funktion definieren mit dem Name help_funktion. Diese Funktion soll wie folgt definiert werden:
wobei fname und hname jeweils Funktionen sind, die dem Funkction-File, in dem diese Hilfsfunktion benutzt werden soll, übergeben werden.
mu und t0 sind jeweil Konstanten, die dem Function-File übergeben werden.
Diese help_funktion soll einfach eine neue Funktion sein, die wiederum einen Parameter erwartet ( einen Vektor x).
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 22:05
Titel:
|
 |
Hallo,
Function-Handles werden exakt wie richtige Funktionen verwendet.
Genauso wie
keinen Sinn macht, sondern
die Funktionen einen Parameter erwarten:
so erwartet fname auch einen Parameter mit dem die Funktion
aufgerufen wird und dessen Rückgabe-Wert dann mit mu multipliziert
wird. Deine Funktions-Definition muß also wissen, dass sie mit x aufgerufen wird:
Grüße
Sirius
|
|
|
Bianka_F |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 25.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.08.2012, 23:49
Titel:
|
 |
|
 |
|
Vielen Dank für die Antwort. Es ergibt sich für mich jedoch ein weiteres Problem. Ich will die Funktion "help_funktion" so gestalten, dass man auch den Gradienten ausrechnen kann. Das heißt ich will die Funktion:
help_funktion(x) = fname (x)+ mu * hname(x) + t0 * hname(x)^2;
ableiten, wobei ich den Gradieten von fname und hname bereits in einem anderem Function-File berechnet habe. Gemäß der Summen und Kettenregel müsste ja die Ableitung so lauten:
grad help_funktion(x) = grad fname(x) + mu*grad hname(x) + 2 * t0 * grad hname(x)
(wobei grad für den Gradienten der jeweiligen Funktionen steht).
Dabei ergeben sich für mich 2 fundamentale Fragen:
1. Wie kann ich in dem Funktion-File die Funktion help_funktion so definieren, dass sie mir bei Bedarf nur den Gradieten aus Rückgabewert liefert
2. Wie muss der Code lauten, damit ich die in anderen Function-Files berechneten Gradieten ( von fname und hname), die auch von x abhängen, verwenden kann um den Gradienten von help_funktion zu berechnen
|
|
|
flashpixx |

Forum-Guru
|
 |
Beiträge: 355
|
 |
|
 |
Anmeldedatum: 19.04.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 29.08.2012, 00:13
Titel:
|
 |
Bianka_F hat Folgendes geschrieben: |
1. Wie kann ich in dem Funktion-File die Funktion help_funktion so definieren, dass sie mir bei Bedarf nur den Gradieten aus Rückgabewert liefert
|
In dem Du die Rückgaben Deiner Funktionen anpasst
Bianka_F hat Folgendes geschrieben: |
2. Wie muss der Code lauten, damit ich die in anderen Function-Files berechneten Gradieten ( von fname und hname), die auch von x abhängen, verwenden kann um den Gradienten von help_funktion zu berechnen |
Wir kennen Deinen Code nicht und die Berechnung des Gradienten musst entweder händisch selbst machen (also anhand Deiner Daten) oder Du nutzt die Symbolic Toolbox, legst dort die Funktion an, substituierst entsprechend die Variablen und erstellen den Gradienten bzw die Ableitung, der Gradient ist ja nichts anderes als die mehrdimensionale Ableitung.
|
|
|
Bianka_F |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 25.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.09.2012, 22:31
Titel:
|
 |
Hallo, meine erste Frage lautete ja:
" Wie kann ich in dem Funktion-File die Funktion help_funktion so definieren, dass sie mir bei Bedarf nur den Gradieten aus Rückgabewert liefert "
darauf wurde folgendes geantwortet:
Zitat: |
In dem Du die Rückgaben Deiner Funktionen anpasst
|
Wie kann ich das denn machen? Ich habe ja kein separates Functon-File für die help_funktion definiert. Dies ist nur eine lokale Funktion, die innerhalb eines anderen Function-Files existiert
|
|
|
|
|
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.
|
|