有沒有辦法在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
您應該將其作爲對此問題感興趣的其他人的回答 –