Matlab 如何在Simulink子系统掩码中实现按钮?

Matlab 如何在Simulink子系统掩码中实现按钮?,matlab,simulink,masking,Matlab,Simulink,Masking,因为我需要为子系统指定一个局部变量,所以我创建了一个掩码。这样做,我就无法轻松访问子系统。右键单击并导航到“在遮罩下查看”应该太复杂了 因此,我考虑了一个解决方案,并构建了以下内容: “获取深度!”复选框后面的对话框回调代码是: myParameter = %Parameter set by checking Get deeper! path = gcb(gcs); if strcmp(get_param(gcb,'myParameter'),'on') open_system(pa

因为我需要为子系统指定一个局部变量,所以我创建了一个掩码。这样做,我就无法轻松访问子系统。右键单击并导航到“在遮罩下查看”应该太复杂了

因此,我考虑了一个解决方案,并构建了以下内容:

“获取深度!”复选框后面的对话框回调代码是:

myParameter = %Parameter set by checking Get deeper!
path = gcb(gcs);

if strcmp(get_param(gcb,'myParameter'),'on')    
open_system(path,'tab');
end
每次我选中该框时,子系统都会被打开,而且每次双击子系统都会打开,以防之前选中该框。因此,代码做了它应该做的事情,但实际上,这并不是实现/可视化这样的事情的常见方式

我想要的是在我的掩码中有一个按钮“lookundermask”——所以子系统只需点击该按钮就可以打开。基本上,按钮应该调用函数:
open\u system(gcb(gcs),'tab')
。看起来很简单,但是Simulink没有为我提供任何选项来实现这一点。有人能帮忙吗


当前解决方案的主要问题还在于,每次执行模型时,所有子系统都会打开,复选框会被选中。这不是我的想法

Matlab2012b添加了您想要的内容:蒙版块在底部左侧有一个按钮,它是“在蒙版下查看”的快捷方式

不幸的是,我认为不可能在掩码中添加按钮

您可能需要更改功能,以便在用户单击“获取深度”复选框后自动将其设置为关闭。这将避免在加载模型时自动打开子系统。您可以在
打开系统(路径,'tab')之后添加
设置参数(路径,'myParameter','off')


最后,作为另一种解决方法,您可能希望将
OpenFcn
回调设置为调用
open\u系统(gcb,'tab')
。这将使系统工作起来就像它根本没有被屏蔽一样。如果您愿意,您可以放置两个
open\u system
调用,一个在mask下查看,另一个打开mask对话框。

真的吗?我有Matlab2013a和2012a,两者都没有按钮;)我也发现了这一点:这对情节来说很好,但对我的案例来说却不行。你的建议是我几个小时来一直在恳求的。如果你能提供一些代码,你会帮我很多。我尝试将复选框“初始化”为“关闭”,因此每次双击并进行模拟时,复选框都处于未选中状态。但是我不能让它工作。@thewaywewalk它是蒙面子系统左下角的小向下箭头。它是在R2012b中引入的,请参阅。从发行说明中可以看到:“如果库被锁定或其
LockLinksToLibrary
属性设置为true,则不会出现[look UnderMask]徽章。@am304-好的,我找到了它,但无论如何,它也必须在2012a下工作。@nonDocur-为什么
set\u param(初始化选项卡中的gcb、'myParameter'、'off')
不工作?