如何根据掩码的状态修改 matlab/simulink 掩码?
How can I modify a matlab/simulink mask depending of the state of the mask?
我正在尝试根据另一个复选框的状态在 matlab/simulink 掩码 (GUI) 中设置一个复选框的启用状态。换句话说:如果复选框 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
但是当我打开面具时,我得到一个错误:
-->Error evaluating 'MaskCallback' callback of TEST block (mask) 'test_simulink /Test test'. -->Invalid inputs specified for method 'set' -->Attempt to modify mask parameter name of block 'test_simulink/Test test' in its MaskCallbacks. Changing mask parameter name as part of MaskCallbacks is not allowed.
我怎样才能完成最初的目标?
我终于找到了解决办法;诀窍不是使用 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
我正在尝试根据另一个复选框的状态在 matlab/simulink 掩码 (GUI) 中设置一个复选框的启用状态。换句话说:如果复选框 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
但是当我打开面具时,我得到一个错误:
-->Error evaluating 'MaskCallback' callback of TEST block (mask) 'test_simulink /Test test'. -->Invalid inputs specified for method 'set' -->Attempt to modify mask parameter name of block 'test_simulink/Test test' in its MaskCallbacks. Changing mask parameter name as part of MaskCallbacks is not allowed.
我怎样才能完成最初的目标?
我终于找到了解决办法;诀窍不是使用 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