Есть ли способ определить статические переменные-члены в классах MATLAB?
Это не работает:
classdef A
properties ( Static )
m = 0;
end
end
Вместо этого предлагается использовать ключевое слово «Константа» для "Static" постоянные свойства не могут быть изменены. Мне нужна переменная, общая для всех объектов класса A
, и я хочу иметь возможность изменять эту переменную в методах класса A
.
Так что мне нужен частный статический переменная-член. Есть ли способ получить его в MATLAB?
Выяснилось, что обходной путь можно сделать , используя постоянные переменные в статических функциях-членах.
В этом случае вы должны унаследовать все свои классы от базового класса, такого как следующие.
classdef object < handle
properties ( GetAccess = 'public', SetAccess = 'private' )
id
end
methods ( Access = 'protected' )
function obj = object()
obj.id = object.increment();
end
end
methods ( Static, Access = 'private' )
function result = increment()
persistent stamp;
if isempty( stamp )
stamp = 0;
end
stamp = stamp + uint32(1);
result = stamp;
end
end
end