我在matlab面向對象編程方面做了一些工作。我有一個屬性類。如果它們是NaN,則屬性被計算,否則該屬性被返回。最大遞歸限制 - 屬性值設置回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。這會導致錯誤:
最大遞歸限制...
任何想法?謝謝。
您的類是引用類型還是值類型?如果引用,那麼你將繼承'handle'。 – Steve 2012-07-10 16:57:55
不確定你指的是什麼。你問是否ny類派生自
cs0815
2012-07-10 17:14:39
是的,如果不是,請參閱下面的sfstewman答案。 – Steve 2012-07-10 19:03:54