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

5 views (last 30 days)
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 Comments
Doug Eastman
Doug Eastman on 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.

Sign in to comment.

Accepted Answer

Doug Eastman
Doug Eastman on 28 Jan 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 Comments
Doug Eastman
Doug Eastman on 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 on 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.

Sign in to comment.

More Answers (0)

Categories

Find more on Programmatic Model Editing in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!