Да, это возможно. Обратите внимание, что если вы создаете объект значения, метод должен вернуть объект, чтобы изменить свойство (поскольку объекты значения передаются по значению). Если вы создаете объект дескриптора (classdef foo<handle
), объект передается по ссылке.
classdef foo
properties
changeMe = 0;
end
methods
function self = go(self)
self.changeMe = 1;
end
end
end
Как уже упоминалось выше, вызов метода установки для объекта значения возвращает измененный объект. Если вы хотите изменить объект, вы должны скопировать вывод обратно в объект.
f = foo;
f.changeMe
ans =
0
f = f.go;
f.changeMe
ans =
1