|
|
Function handle als Objektproperty übergeben |
|
MarekJosef |
Forum-Anfänger
|
|
Beiträge: 36
|
|
|
|
Anmeldedatum: 10.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.01.2013, 13:56
Titel: Function handle als Objektproperty übergeben
|
|
Hallo.
Ich würde gerne meiner Klasse ein function handle übergeben. So stelle ich mir das vor (bis auf die Tatsache, dass es nicht ganz funktioniert):
Es kommt zwar kein Fehler, aber er speichert mir in Eigenschaft dann einfach den Wert 0.5403 ab, also cos(1).
Ich habe aber später Daten und möchte von denen den Cosinus berechnen.
Geht das, dass ich irgendwie die Function Handle übergeben kann?
|
|
|
|
|
Bluesmaster |
Forum-Century
|
|
Beiträge: 203
|
|
|
|
Anmeldedatum: 13.11.11
|
|
|
|
Wohnort: Gera
|
|
|
|
Version: 2012a
|
|
|
|
|
|
Verfasst am: 16.01.2013, 14:46
Titel:
|
|
Hallo,
gleich ein paar Anmerkungen:
1.
deine A-Klasse erbt nicht von "handle" wird also immer
eine Kopie von sich herausgeben und keine Referenz.
Dh. A.SetEigenschaftA = 5 gefolgt von A.EigenschaftA
führt zu ans = [] (du hast nur an einer alten Kopie herumgedoktort)
2.
<@(x) command >führt zu einer Anonymus-Fcn, die kein eigene eigene Code-Stelle
braucht sondern sofort einen Befehl ausführt und ihm
die Argumente "durchreichen" kann
Ein Functionhandle bekommst du mit: myFcnH = @cos
3. Es fehlt noch ein "end" um die Klasse zu schließen
4. so gehts:
o = A
o.SetEigenschaftA( @cos )
o.EigenschaftA(2)
ans = -0.4161
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 16.01.2013, 14:49
Titel:
|
|
Hallo
und was soll das Gleichzeichen in deinem Script?
sollte denn das nicht so heißen?
Außerdem darf Setter-Methode keinen Rückgabenwert haben, das habe aber schon in anderem Thread darauf hingewiesen
also muss die Klasse so heißen:
|
|
|
MarekJosef |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 36
|
|
|
|
Anmeldedatum: 10.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.01.2013, 15:38
Titel:
|
|
Entschuldigung für die kleinen Fehler.
Ich habe bei mir jetzt den Fehler ausgemacht. Bei der Eingabe wollte ich eventuell auch einen Vektor zulassen mit mehreren Einträgen. Daher bin ich eine Schleife abgelaufen, und bin über die Eingabevariable "var" gegangen. Das heißt, ich habe für cos immer die "1" eingegeben. Ich könnte das ja aber mit einem Zellarray lösen, oder varargin. Ich möchte eventuell mehrere Funktionen eingeben können.
Vielen Dank aber. Ihr habt mich auf die Spur gebracht.
|
|
|
|
|
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 - 2024
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.
|
|