有没有办法在 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