I would recommend you add a method to compute and update the value of your dependent property and then call that method from the setters for each property that updates it. This single-sources the computation of that property, caches it to avoid unnecessary re-computation, and satisfies MATLAB Code Analyzer.
Here is an example, where Area of a Rectangle depends on Width and Height and is updated when each of those is set:
classdef Rectangle < handle
properties
Width = 10;
Height = 20;
end
properties(SetAccess = private)
Area = 200;
end
methods
function set.Width(obj, v)
obj.Width = v;
obj.updateArea;
end
function set.Height(obj, v)
obj.Height = v;
obj.updateArea;
end
end
methods(Access = private)
function updateArea(obj)
obj.Area = obj.Width * obj.Height;
end
end
end
Best Answer