|
|
Problem mit function handles |
|
Pillemann |

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 21.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.03.2010, 18:27
Titel: Problem mit function handles
|
 |
Hallo!
Ich habe eine Liste mit Parametern, mit denen ich in einer Funktion ein Ergebnis
ausrechne, dass dann in meinem Hauptprogramm verwendet wird. Etwa so:
%Hauptprogramm:
Jetzt wollte ich mit mehreren Parameterlisten arbeiten, so dass ich Summe.m nur die
Liste übergeben muss. Irgendwo hab ich gelesen, dass man sowas mit function handles macht:
%Hauptprogramm:
Das klappt aber nicht. In built-in-functions wie fzero o.ä. wird die Eingangsfunktion mit fcnchk in ein handle umgewandelt, aber dass hab ich auch nicht hinbekommen, weil meine Kenntnisse gelinde gesagt begrenzt sind.
Bitte zeigt mir, wie der Code richtig lauten muss.
Danke
|
|
|
|
|
Thomas84 |

Forum-Meister
|
 |
Beiträge: 546
|
 |
|
 |
Anmeldedatum: 10.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.03.2010, 07:34
Titel:
|
 |
Ich glaube es findet sich eine einfachere Lösung die Parameter zu laden. z.B. aus einem mat. file herraus. Mir ist aber aufgefallen das ein function_handle scheinbar nicht mehrere Werte zurückliefern kann.
Der erste Aufruf von parameter2 funktioniert, der zweite nicht.
|
|
|
Pillemann |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 21.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.03.2010, 10:30
Titel:
|
 |
Hallo Thomas,
danke für die Antwort.
1. die einzelnen funktionen parameter und sum sind in m-files abgelegt.
2.Wenn ich es so mache:
schreibt matlab: lalala ist hier eine Variable :
und dort eine Funktion:
und das beisst sich.
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 22.03.2010, 10:54
Titel:
|
 |
Hallo,
ich denke das würde über Strings gehen, die Parameter-Fkt muss man als String an Summe.m übergeben und dort mit str2func Befehl auflösen
Aufruf wäre dann:
oder gleich als handle an Funktion Summe übergeben
PS: bitte reserviertes Wort sum nicht als Variablennamen verwenden
|
|
|
Pillemann |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 21.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.03.2010, 14:43
Titel:
|
 |
Hi denny,
danke auch dir für die Antwort. Leider bringen deine beiden Vorschläge dieselbe Fehlermeldung:
"lala" was previously used as a variable,
conflicting with its use here as the name of a function.
Wenn ich mir mal dann lala mal ausgeben lasse, kommt auch nur:
lala =
@parameter2
Mich würde wirklich interessieren, wie man es mit function handles macht.
Die gute Nachricht:
Ich hab es mit varargin hinbekommen! Falls es interessiert:
ruft man nun im command window myfun(parameter2) auf, kommt als Ergebnis:
res =
1 2 3 4 5
Danke für alles!
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 22.03.2010, 14:55
Titel:
|
 |
Hallo,
das funktioniert, habe bloß die Klammern vergessen.
Matlab muss ja klargemacht werden, dass das keine Variable ist sondern eine Funktion.
oder
|
|
|
Pillemann |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 21.03.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.03.2010, 19:53
Titel:
|
 |
|
|
|
|
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.
|
|