带设计验证的Matlab功能块
例如,我的simulink模型中有一个Matlab功能块,如下所示:带设计验证的Matlab功能块,matlab,simulink,Matlab,Simulink,例如,我的simulink模型中有一个Matlab功能块,如下所示: function define_tests(row rowValues) for i=1:length(rowValues) sldv.test(row == rowValues(i)); function define_tests(row, rowValues) sldv.test(all(row == rowValues)); 每次我调用sldv.test,设计验证器都不会生成测试。它最
function define_tests(row rowValues)
for i=1:length(rowValues)
sldv.test(row == rowValues(i));
function define_tests(row, rowValues)
sldv.test(all(row == rowValues));
每次我调用sldv.test
,设计验证器都不会生成测试。它最后一次调用时只生成一个测试
对于生成length(rowValues)
测试的可能解决方案,您有什么想法?谢谢你,上面写着
此函数没有输出,也不会影响其父函数
它没有明确说明,但我假设,sldv.test
本身并不一定在函数中“执行”或“调用”,而是作为一种表示所需行为的方式,供sldv在分析函数时使用。我推测,sldv.test
并不打算与函数中的控制流混合,因为sldv实际上并没有执行这个控制流
还考虑这样一个事实,如果您将新的控制逻辑(例如for循环或if语句)添加到函数
sldv.test
,并尝试对测试表达式进行矢量化。使用您的示例,它如下所示:
function define_tests(row rowValues)
for i=1:length(rowValues)
sldv.test(row == rowValues(i));
function define_tests(row, rowValues)
sldv.test(all(row == rowValues));
这应该具有指定rowValues的所有元素等于row的所需行为
这里有一个链接,可以链接到有关的更多信息