|
|
class method als callback aufrufen |
|
MatLabNooB |
Forum-Guru
|
|
Beiträge: 262
|
|
|
|
Anmeldedatum: 27.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.08.2011, 19:09
Titel: class method als callback aufrufen
|
|
Hallo,
ich habe eine klasse definiert und dieser methoden hinzugefügt. Jetzt würde ich gerne auf die Klassenmethode 'unit_conversion_factors' zugreifen. Leider erzeugt Matlab lauter Fehlermeldung, wie mach ich es richtig?
im = Instanz meiner Klasse
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.08.2011, 19:33
Titel:
|
|
Hallo,
wie immer wäre es hilfreich, die Fehlermeldungen zu sehen.
Ein Problem wird sicher sein, dass die Callbacks immer mit Argumenten aufgerufen werden, und dass diese Argumente mit den erwarteten deiner Klassenmethode (sofern diese überhaupt Argumente annimmt) nicht zusammenpasst.
Falls dir das nicht weiterhilft: wie ist die Deklarationszeile der Methode?
Woher sollen eventuelle zusätzliche Eingabeargumente kommen?
Grüße,
Harald
|
|
|
MatLabNooB |
Themenstarter
Forum-Guru
|
|
Beiträge: 262
|
|
|
|
Anmeldedatum: 27.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.08.2011, 19:55
Titel:
|
|
also die methode sieht etwa so aus, also die methode soll keine speziellen argumente übernehmen, nur ausgeführt werden, wenn ich im Contextmenu den entsprechenden Callback abfeuer...
hatte auch schon mit Varianten von varargin und varargout probiert, aber sitz voll auf dem Schlauch
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 12.08.2011, 20:08
Titel:
|
|
Hallo,
mich erstaunt, dass die Meldung auf die Outputs bezogen ist. Ich hätte vermutet, dass sie auf die Inputs bezogen ist. Vielleicht hilft auch der Debugger?
Zwei Vorschläge:
oder
Ob die Methode als Methode auf das Objekt angewendet wird oder als Funktion mit Objekt als Input aufgerufen wird, sollte keinen Unterschied machen.
Wenn das nicht funktioniert, würde ich den Callback mal in einer separate (Sub oder nested) Function schreiben und dort mit dem Debugger reingehen und NARGIN und NARGOUT überprüfen.
Grüße,
Harald
|
|
|
MatLabNooB |
Themenstarter
Forum-Guru
|
|
Beiträge: 262
|
|
|
|
Anmeldedatum: 27.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.08.2011, 20:25
Titel:
|
|
hat funktioniert, hab vielen Dank! Muss das aber noch mal für mich selbst verstehen, was da schiefläuft, bin grad vom rumtesten bisschen Matsch in der Birne...
gruß
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 13.08.2011, 09:52
Titel:
|
|
Hallo,
der GUI-Mechanismus ruft den Callback mit (ich denke zwei) Input-Argumenten auf. Deine Methode nimmt aber keine (zusätzlichen) Input-Argumente entgegen.
Über das anonymous function handle kannst du das Funktions-Interface anpassen. Mein Vorschlag nimmt also varargin (= alle Input-Argumente) entgegen, damit der Aufruf mit Argumenten möglich ist, und verwendet sie einfach nicht weiter.
Grüße,
Harald
|
|
|
godi |
Forum-Fortgeschrittener
|
|
Beiträge: 52
|
|
|
|
Anmeldedatum: 25.05.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.08.2011, 07:29
Titel:
|
|
Hallo!
Die Callback Methode benötigt 3 Input Argumente:
Zum einen das Objekt selbst, dann das Handle des GUI Elements und noch ein Eventobjekt.
So kannst du auch Methoden aus anderen Klassen aufrufen wenn du ein Objekt instanziert hast.
godi
|
|
|
MatLabNooB |
Themenstarter
Forum-Guru
|
|
Beiträge: 262
|
|
|
|
Anmeldedatum: 27.03.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2011, 22:38
Titel:
|
|
dank euch für die Erklärungen, bin grad erst dabei mich in OOP einzuarbeiten, und mit anonymous function handles und Weitergabe von Variablen steh ich sowieso permanent auf Kriegsfuss
|
|
|
|
|
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.
|
|