有没有办法在 MATLAB 类中定义静态成员变量?
以下代码无法实现此功能:
classdef A
properties ( Static )
m = 0;
end
end
建议使用关键字“Constant”而不是“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