因为我需要为子系统指定局部变量,所以我创建了一个掩码 . 这样做我失去了对子系统的轻松访问 . 右键单击并导航到“在掩码下查看”应该太复杂了 .
所以我想到了一个解决方法并构建了以下内容:
"Get deeper!"复选框后面的对话框回调代码是:
myParameter = %Parameter set by checking Get deeper!
path = gcb(gcs);
if strcmp(get_param(gcb,'myParameter'),'on')
open_system(path,'tab');
end
每当我选中该框时,子系统都会打开,并且每次双击子系统时都会打开,以防万一之前检查过该框 . 因此代码完成了它应该做的事情,但这实际上并不是人们如何实现/可视化这样的东西的常见方式 .
我想要的是我的面具中的一个按钮"Look under mask" - 所以只需点击该按钮即可打开子系统 . 基本上按钮应该调用函数: open_system(gcb(gcs),'tab')
. 看起来很简单,但Simulink并没有为我提供任何选项来实现它 . 有人可以帮忙吗?
当前解决方案的主要问题还在于,每次执行模型时,所有子系统都会打开,检查框 . 那不是主意 .
1 回答
Matlab 2012b准确地添加了你想要的东西:蒙版块在左边的按钮上有一个按钮,是“在掩护下看”的快捷方式 .
不幸的是,我不认为可以在面具中添加按钮 .
您可能希望将功能更改为在用户单击它后自动设置"Get deeper!"复选框 . 这样可以避免在加载模型时自动打开子系统 . 您可以在
open_system(path,'tab');
之后添加set_param(path,'myParameter','off')
最后,作为另一种解决方法,您可能希望将
OpenFcn
回调设置为调用open_system(gcb,'tab')
. 这将使系统工作,好像它根本没有被屏蔽 . 如果您愿意,可以放置两个open_system
调用,一个用于在掩码下查看,另一个用于打开掩码对话框 .