me encontré con este problema a mí mismo cuando escribí mi nueva clase HPF. Así que probé algunas cosas, ya que mientras depuraba la nueva clase, tuve que hacer muchos cambios y luego probar.
"Borrar funciones" no ayuda. Incluso probé "clear hpf". Pero borrar todas las instancias parece hacerlo. Por ejemplo:
>> x = hpf(3);
>> x+2
ans =
5
>> whos
Name Size Bytes Class Attributes
ans 1x1 248 hpf
x 1x1 248 hpf
y 1x1 8 double
Así que ahora hice un cambio trivial en la clase y la guardé.
>> z = hpf(17);
Warning: The class file for 'hpf' has been changed; but the change cannot be applied because objects based on the old class file still exist. If you use
those objects, you might get unexpected results. You can use the 'clear' command to remove those objects. See 'help clear' for information on how to remove
those objects.
>> clear functions
>> clear hpf
>> clear x
>> clear z
>> x = hpf(3);
Warning: The class file for 'hpf' has been changed; but the change cannot be applied because objects based on the old class file still exist. If you use
those objects, you might get unexpected results. You can use the 'clear' command to remove those objects. See 'help clear' for information on how to remove
those objects.
Aún recibo una advertencia, diciéndome que MATLAB todavía tiene un problema. Sin embargo, todavía tenía una instancia de HPF en la memoria que se olvida fácilmente, ans.
>> clear ans
>> clear x
>> whos
Name Size Bytes Class Attributes
y 1x1 8 double
>> x = hpf(3);
>> x+23
ans =
26
Mientras quite esa instancia también, MATLAB ya no me avisa. Tenga en cuenta que nunca tuve que emitir un comando de "clases claras". La variable y, un doble, todavía existe para probar ese hecho.
para completar Me gustaría agregar que las instancias también pueden ocultarse en los componentes userdata de figuras y otros objetos gráficos. Estos no aparecen con quién. – bdecaf
Desafortunadamente, esta no es una eliminación completamente limpia de la definición de clase. Los datos de propiedades constantes permanecen en la memoria, por ejemplo, incluso después de que se hayan eliminado todas las instancias. –