Change class property inside of class function/method
48 次查看(过去 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!