Использование класса ванили
При использовании класса vanilla вы должны указать Matlab хранить измененную копию объекта, чтобы сохранить изменения в значении свойства. Таким образом,
>> 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
Использование класса дескриптора
Если вы наследуете от класса дескриптора, то это
classdef testprop < handle
тогда вы можете написать,
>> a.Request(5);
>> a.Request(5);
>> a.numRequests
ans =
2
Обновление: использование класса Vanilla
Поскольку Kamran отмечает, что вышеописанное работает, определение метода Request
в коде примера вопроса необходимо изменить, чтобы включить выходной аргумент типа testprop .
Спасибо, Камран.