MATLAB は初めてなので、2 つのプロパティのいずれかが値を変更すると、3 番目のプロパティが自動的に再計算されるクラスを作成しようとしています。
イベントとリスナーはこのために作成されているようですが、基本的な実装のこつがわかりません。
私の最近の試みはこれです
% when property a or b is altered, c will automatically be recalculated
classdef myclass < handle
properties
a = 1;
b = 2;
c
end
events
valuechange
end
methods
function obj = myclass()
addlistener(obj,'valuechange', obj.calc_c(obj))
end
function set_a(obj, input)
obj.a = input;
notify(obj, valuechange)
end
function set_b(obj, input)
obj.b = input;
notify(obj, valuechange)
end
function calc_c(obj)
obj.c = obj.a + obj.b
end
end
end
次のエラーを返します
Error using myclass/calc_c
Too many output arguments.
Error in myclass (line 18)
addlistener(obj,'valuechange', obj.calc_c(obj))
私は何を間違っていますか?