Update Class without restarting matlab

Hello Matlabers
I am working on a GUI and have implemented some of my own classes (all stored in @classname folder with subfunctions in there too - as told on the mathworks website).
When I need to do some changes to methods/functions in my classes, they somehow do not get updated after saving. When I restart my gui (where tha objects are created) I still get the old implementations.
I always close all the windows/guis and do "close all" but this does not seem to work - even "pack" has no influence.
Thus I found that in order to have an updated class I need to restart my Matlab and then things work perfectly.
There has to be a more convenient way, hasn't it?

 Risposta accettata

This is because Matlab does a certain amount of cacheing of classes in memory - as indicated by Walter the way to update is to use
clear classes

4 Commenti

I usually go with "clear all" - doesn't this include clear classes too?
No it doesn't. from the matlab help:
CLEAR CLASSES is the same as CLEAR ALL except that class definitions are also cleared
perfect, thank you!
Is there a way to only reload a specific class?
When developing code, I quite often only change one class. Reloading all classes (and rereading data) takes significant time.

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 6 Apr 2011

0 voti

Have you tried using "clear" of the class? Have you tried using "rehash", perhaps even "rehash toolboxcache" ?

1 Commento

As in the command "clear classes". You will then need to re-instantiate you classes. I do it by restarting the GUI.

Accedi per commentare.

Categorie

Scopri di più su Class Introspection and Metadata in Centro assistenza e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by