¿Hay alguna forma de definir variables de miembros estáticos en las clases de MATLAB?¿Cómo obtener variables miembro estáticas en clases MATLAB?
Esto no funciona:
classdef A
properties (Static)
m = 0;
end
end
Se sugiere utilizar la palabra clave "constante" en lugar de "estática", las propiedades constantes no pueden ser modificados. Quiero una variable común a todos los objetos de la clase A
y quiero poder modificar esa variable en los métodos de la clase A
.
Entonces, lo que necesito es una variable de miembro estática privada. ¿Hay alguna forma de obtenerlo en MATLAB?
descubrí que una solución se puede hacer usando variables persistentes en funciones miembro estáticas.
En este caso, debe heredar todas sus clases de una clase base como la siguiente.
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
no es para ello AFAIK, pero funciona [persistente] (http://www.mathworks.com/help/techdoc/ref/persistent.html)? –
Sí, obtuve una solución con una variable persistente en una función miembro estática. – Vahagn
debe publicarlo como respuesta para los interesados en esta pregunta –