Can the value of a parameter in a model workspace be determined programatically and not dirty the model workspace?

3 visualizzazioni (ultimi 30 giorni)
The only way I know of to determine the value of a parameter in the model workspace is like this:
hws = get_param('mymodel','modelworkspace'); p = hws.evalin('param');
Howevever, the call to evalin makes the model workspace dirty. Is there a way to get the value of param and keep the model workspace clean? It would be nice if there was:
p = hws.read('param');
which would have no effect on the cleanliness of the model workspace.
  3 Commenti
Doug Eastman
Doug Eastman il 3 Apr 2012
Dirty means that MATLAB thinks the file has changed since it was last saved on disk and is indicated by an * next to the name in the title bar. This results in for example a dialog box popping up when the model/file is closed asking if you want to save changes.
In this context the model workspace being dirty means that the model itself is dirty.

Accedi per commentare.

Risposta accettata

Doug Eastman
Doug Eastman il 28 Gen 2011
Here is one way that does not dirty the model:
hws = get_param('mymodel','modelworkspace');
myData = hws.data;
p = myData(strcmp({myData.Name},'param')).Value;
clear('myData')
  3 Commenti
Doug Eastman
Doug Eastman il 1 Feb 2011
I thought I did see it in the doc, but now I can't find it so maybe not. I'm pretty sure I first saw this by hitting tab after typing 'hws.' to see a list of all the properties and methods, something I generally do when playing with new objects.
Paul
Paul il 1 Feb 2011
I found it using the tab approach also. Should I be worried about using an undocumented method? I wonder why it and others are not documented. hws.data and hws.isDirty are very useful.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Programmatic Model Editing in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by