MATLAB Answers

Save changes to class properties with dot notation

8 views (last 30 days)
Luca Amerio
Luca Amerio on 15 Sep 2016
Commented: Luca Amerio on 15 Sep 2016
Let's say I have a simple class like this one:
classdef MyData
properties
Data = 0;
end
methods
function obj=addData(obj,val)
obj.Data = obj.Data + val;
disp(obj.Data)
end
end
end
If I call twice
a=addData(a,1);
the output is
>> a=addData(a,1);
1
>> a=addData(a,1);
2
however if I use the dot notation the behavior changes like this
>> a.addData(1)
1
>> a.addData(1)
1
The "Data" properties is not updated after the call. Is it possible to use the dot notation and store the value in the object?
Thank you very much

  0 Comments

Sign in to comment.

Accepted Answer

per isakson
per isakson on 15 Sep 2016
Edited: per isakson on 15 Sep 2016
MyData is a value class. Try
a = a.addData(1)
and
classdef MyData < handle

  1 Comment

Luca Amerio
Luca Amerio on 15 Sep 2016
The "< handle" solution is the one I was looking for. Thank you very much

Sign in to comment.

More Answers (0)

Sign in to answer this question.


Translated by