Weisen Sie den Getter dynamisch für eine abhängige Eigenschaft in MATLAB zu
In Matlab kann ich eine Klasse als solche definieren:
classdef klass < handle
properties(Dependent)
prop
end
end
Matlab ist vollkommen glücklich, ein Objekt dieser Klasse zu instanziieren, auch ohne einen Getter für zu definierenprop
. Es schlägt nur fehl, wenn ich versuche, darauf zuzugreifen (verständlicherweise). Ich möchte das einstellenGetMethod
dynamisch basierend auf dem Namen der Unterkunft.
Leider, auch wenn die Eigenschaft abhängig ist, diemeta.property
Feld fürGetMethod
ist immer noch schreibgeschützt. Und beim Erben vondynamicprops
erlauben könnteHinzufügen Ich glaube nicht, dass es verwendet werden kann, um eine vorhandene Eigenschaft zu ändern. Ich muss vielleicht diesen Weg gehen, aber alsprop
Muss Es gibt für jedes Objekt, für das ich es vorziehen würde, den Getter einfach auf Klassenbasis festzulegen. Ist so etwas möglich?
Eine alternative Lösung könnte eine Art Catch-All-Methode sein. In anderen Sprachen könnte dies durch ein Ruby-like erreicht werdenmethod_missing
oder ein PHP-like__get()
. Aber meines Wissens gibt es in Matlab kein (dokumentiertes oder sonstiges) Analog.
(Mein Anwendungsfall: Diese Klasse wird von vielen benutzerdefinierten Unterklassen geerbt, und auf alle abhängigen Eigenschaften wird auf ähnliche Weise zugegriffen, nur basierend auf dem Eigenschaftsnamen. Anstatt Benutzer zum Schreiben aufzufordernget.*
Methoden, die einen Aufruf des gemeinsamen Codes für jede ihrer abhängigen Eigenschaften umschließen, möchten sie alle dynamisch mit anonymen Funktionszeigern festlegen, die die erforderlichen Metadaten enthalten.