casos de compensación de la clase debería funcionar.
Suponga que tiene una instancia de "MyClass" en el espacio de trabajo de base:
foo = MyClass;
Ahora, supongamos que edita MiClase y añadir nueva "barra" método estático:
foo.bar(); % Will cause error, as foo is instance of previous "MyClass"
Sin embargo, "claro" foo -ing eliminará la referencia a la clase anterior:
clear('foo');
foo = MyClass;
foo.bar(); % this should now work.
Esto debería estar bien si solo tiene una o dos instancias de la clase en su espacio de trabajo base. Si tiene muchas instancias de la clase en su espacio de trabajo base, entonces es posible que desee escribir un guión para desactivarlas:
varList = whos;
for iVar = 1:numel(varList)
if isequal('MyClass', varList(iVar).class)
clear(varlist(iVar).name);
end
end
clear('varList');
clear('MyClass');
si tiene instancias de la clase en más lugares, es posible que desee extender la secuencia de comandos según sea apropiado.
La última llamada para borrar el nombre de la clase solo podría ser necesaria si está realizando modificaciones en las clases en una jerarquía de herencia.
Eso sí funciona, ¡gracias! ¿Es posible hacerlo en una clase individual? – Brendan
Hasta donde yo sé, no hay forma de utilizar CLEAR para actualizar las clases individuales que se han modificado. ¡Es todo o nada! =) – gnovice
Rehash probado, ninguna de las opciones funciona. ¡Piensa que las clases claras son la única forma, aplausos! – Brendan