我正在尝试 matlab 面向对象的编程。我有一个带有属性的类。如果属性为 NaN,则计算属性,否则返回属性。
所以我有这个部分:
properties
some_property = NaN;
end
并且一个属性是这样计算的:
function some_property = get_some_property(obj)
if(isnan(obj.some_property))
% do some expensive computation
obj.some_property = ...;
end
some_property = obj.some_property;
另一个 get_some_property 方法可以使用 get_some_property 方法。问题是方法调用之间的属性被设置回 NaN。这会导致错误:
最大递归限制...
有任何想法吗?谢谢。