有没有办法在MATLAB类中定义静态成员变量?如何在MATLAB类中获取静态成员变量?
这不起作用:
classdef A
properties (Static)
m = 0;
end
end
它建议使用关键字“恒”,而不是“静态”的,恒定的属性不能被修改。我想要一个通用于类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
这并不意味着它AFAIK,但[持久](http://www.mathworks.com/help/techdoc/ref/persistent.html)工作? –
是的,我在静态成员函数中获得了一个带有持久变量的解决方法。 – Vahagn
您应该将其作为对此问题感兴趣的其他人的回答 –