1

我有一个 Simulink 模型,其中有一个Check Static Range模块。在我的基础工作区中,我有一个名为myNum=3. 在检查静态范围块内,有一个名为“断言失败时的模拟回调”的编辑框。在这个编辑框中我写了disp(num2str(myNum)). 我期望的是在断言发生时看到命令窗口中显示的 myNum 的值。相反,我得到“错误评估 Checks_SRange 块的 'AssertionFcn' 回调......未定义的函数或变量 'myNum'。

当我用Assertion块尝试相同的回调时,它没有问题。如何让 Check Static Range 块识别工作区中的变量?

4

2 回答 2

1

Check Static Range 模块在掩码下方有一个 Assertion 模块。Simulink 回调字符串在封装工作区中进行评估,而不是在基本工作区中评估,这就是您看到错误的原因。试试这个来强制在基础工作区进行评估,

disp(num2str(evalin('base','myNum')))

于 2011-01-29T03:08:18.373 回答
0

我这里没有要测试的 Matlab。您是否在编辑框的内容周围加上引号?'disp(''3'')' 有效吗?(用双单引号,因为你在一个字符串中)

于 2011-01-28T18:12:51.603 回答