Using a Vanilla Class
When using vanilla class you need to tell Matlab to store a modified copy of the object to save the changes in the property value. So,
>> a=testprop
>> a.Request(5); % will NOT change the value of a.numRequests.
5
>> a.Request(5)
5
>> a.numRequests
ans =
0
>> a=a.Request; % However, this will work but as you it makes a copy of variable, a.
5
>> a=a.Request;
5
>> a.numRequests
ans =
2
Using the Handle Class
If you inherit from the handle class, that is
classdef testprop < handle
then you can write,
>> a.Request(5);
>> a.Request(5);
>> a.numRequests
ans =
2
Update: Using Vanilla Class
As Kamran notes for the above to work the definition of the Request
method in the question's example code needs to be changed to include an output argument of type testprop.
Thanks Kamran.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…