Is the Model Workspace dirty?

Is there a programatic way to determine if the model workspace is dirty, which is indicated by an asterisk next to "Model Workspace" in the model explorer?

 采纳的回答

Check this code out:
Z=get_param(gcs,'ModelWorkspace');
Z.isDirty

3 个评论

Does requesting that parameter make the workspace dirty? ;-)
Excellent! Is this documented anywhere? Are there any other undocumented methods of the ModelWorkspace class? If this isn't documented, should I really count on it?
Your start point could from here http://www.mathworks.com/help/toolbox/simulink/slref/f23-7515.html

请先登录,再进行评论。

更多回答(1 个)

MG
MG 2018-2-8
编辑:MG 2018-2-8
To determine if the model is dirty:
This means a model has changes that are unsaved.
x = get_param( gcs, 'ModelWorkspace' )
x.isDirty
or
bdIsDirty( gcs )
or
isDirtyOff = strcmp( get_param( gcs, 'Dirty' ), 'off' )
or
isDirtyOn = strcmp( get_param( gcs, 'Dirty' ), 'on' )
To set the dirty bit:
This will trick Simulink to think there are changes that are unsaved.
examples:
  • if you want to save a changed view when there has been no material changes to the model; or
  • you opened or closed some tabs and want to save that change in state when there has been no other material changes to the model.
x = get_param( gcs, 'ModelWorkspace' )
x.isDirty = 1;
or
set_param( gcs, 'Dirty', 'on' )
To save the model:
save_system( gcs )
To close the model:
close_system( gcs )
To save and close the model:
close_system( gcs, 1 )

类别

帮助中心File Exchange 中查找有关 Programmatic Model Editing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by