How to react on a change of variable from workspace?

18 vues (au cours des 30 derniers jours)
Vieniava
Vieniava le 4 Fév 2011
I would like to have an opportunity to react on value change of any workspace variable during any script runnig or commandline working. I would like to avoid using timer object, which can be used as speedy value checker . I would like to have ValueChangeFcn callback, or sort of that.
  2 commentaires
Oleg Komarov
Oleg Komarov le 4 Fév 2011
A thought (not an expert here): overloading subsasgn to check for every NEW assignment?
Siddharth Shankar
Siddharth Shankar le 4 Fév 2011
Could you provide a little more background? How are these variables in the workspace changing? Who modifies the values, and would it be possible for the program/process that modifies these values to also notify you of having made the change?

Connectez-vous pour commenter.

Réponse acceptée

Siddharth Shankar
Siddharth Shankar le 4 Fév 2011
One POSSIBLE solution if you are not considering a timer object (and assuming that you have a relatively recent version of MATLAB, which supports object-oriented programming with MATLAB classes) is to make these variables "Observable" properties of a MATLAB class. You can then listen to changes of these property values. You could put all the variables that you want to listen to as properties of a MATLAB class. More information available here:
EDIT: Use Dynamic properties in conjunction with the SetObservable attribute for those properties and you should be all set. Here's how to Set dynamic property attributes.

Plus de réponses (2)

Brett Shoelson
Brett Shoelson le 4 Fév 2011
I like Siddharth's answer. But as an alternative, you could create a timer object (help TIMER) that, in its callback, looks at the value of a workspace variable and compares it to the old value.
Cheers, Brett

roshana
roshana le 12 Avr 2011
I have a problem, and that's the value for the variables i use in the mfile never change. every time i modify the m file, for instance try to get result with a different image again the m file is run with the same old values. note: I also execute "clear" in the command windows to clear the workspace.
  1 commentaire
Walter Roberson
Walter Roberson le 12 Avr 2011
That really should be posed as a new question.
The first thing to try is
rehash
If that does not work, you may have saved your files in one of the toolbox directories, which will cause multiple problems. The work-around is to
rehash toolbox

Connectez-vous pour commenter.

Catégories

En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by