Как получить статические переменные-члены в классах MATLAB?

Есть ли способ определить статические переменные-члены в классах 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
15
задан Wacov 17 November 2015 в 12:23
поделиться