如何根据蒙版的状态修改matlab / simulink蒙版?

时间:2017-01-23 15:48:17

标签: matlab simulink

我正在尝试在matlab / simulink掩码(GUI)中设置复选框的Enabled状态,具体取决于另一个复选框的状态。换句话说:如果选中复选框A,则复选框B将被禁用(灰色)。 我试图在复选框A:

上使用回调函数
box_A = get_param(gcb, 'checkBoxA');
m = Simulink.Mask.get(gcb);
box_B = m.getParameter('checkBoxB');

if strcmp(box_A, 'on')
    box_B.set('Enabled', 'off');
end

但是当我打开面具时,我收到一个错误:

  

- >评估TEST块(掩码)'test_simulink / Test test'的'MaskCallback'回调时出错。 - >为方法'set'指定的输入无效 - >尝试在MaskCallbacks中修改块'test_simulink / Test test'的掩码参数名称。不允许将掩码参数名称更改为MaskCallbacks的一部分。

我如何实现我的初步目标?

1 个答案:

答案 0 :(得分:1)

我终于找到了解决方案;诀窍不是使用set函数,而是分配给Enabled属性:

box_A = get_param(gcb, 'checkBoxA');
m = Simulink.Mask.get(gcb);
box_B = m.getParameter('checkBoxB');

if strcmp(box_A, 'on')
    box_B.Enabled = 'off';
else
    box_B.Enabled = 'on';
end