Change class property inside of class function/method
51 ビュー (過去 30 日間)
古いコメントを表示
I would like assign a new value to a variable created in my class, but the below approach does not update the variable. Is there a different approach?
classdef class_1
properties
var_1
end
function consistency_check_trades(obj)
obj. var_1 = 2
end
end
0 件のコメント
採用された回答
Steven Lord
2022 年 2 月 7 日
Your class does not inherit from the handle class so it has value class behavior. See this documentation page for a discussion of the differences between handle and values classes,
3 件のコメント
Steven Lord
2022 年 2 月 7 日
That's one way of solving the problem, yes. But being a handle class also comes with some other behaviors. If your class_1 objects aren't tied to something where it makes sense for multiple objects to refer to the same thing (like a figure window on screen):
f1 = figure; % f1 is a handle
f2 = f1; % f2 refers to the same figure as f1
f1.Color
f2.Color = 'r'; % Not changing f1's Color property
f1.Color % but the figure to which it refers changed so its property changed
Consider if leaving it as a value class (if that makes more sense) and returning the modified object from your method.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Construct and Work with Object Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!