MATLAB: Update instance property data without creating a new object

classoop

How can I update a property without creating a new instance, using an instance method? For example:
classdef TestClass
properties
A = [];
end
methods
function obj=updateA(obj, val)
obj.A = val;
end
end
end
This will update A:
x = TestClass
x.A = 5;
However,
x.updateA(10)
will not update the instance x, but will create a new instance with the modified A. How can I update the property A of x using a class method without creating a new instance?

Best Answer

x = x.updateA(10)
will update the current object.
Or you can derive your class from 'handle' to make it a pass-by-reference class which does not need to re-assign obj, but beware this has other implications too.