主要内容

为什么分析仪选择零状态的长度?

当算法的输出不会改变任何输入给定算法,分析认为该算法无状态的,即使它包含状态。确保输入算法有一个直接影响算法的输出。

这个函数Input_Output使用一个冷杉过滤器包含状态。

函数[输出]= Input_Output(输入)持续的过滤器如果isempty(过滤器)过滤器= dsp.FIRFilter (“分子”(1:12));结束y =过滤器(输入);输出=任何(y (:) > 0);结束

当你调用这个函数自动状态长度检测,分析仪检测到最小状态的长度0

dspunfoldInput_Outputarg游戏{randn (10,1)}- s汽车- f真正的
分析输入MATLAB函数文件Input_Output_st Input_Output创建线程的墨西哥人。mexw64寻找最小状态长度(这可能需要一段时间)检查无状态……足够的最小长度为0创建多线程的墨西哥人文件Input_Output_mt状态。Input_Output_analyzer mexw64创建分析器文件

分析仪检测到零状态的长度,因为函数的输出相同的输入的值无关。当分析仪测试算法和零状态长度,多线程的墨西哥人的输出和单线程的墨西哥人匹配。因此,分析认为该算法无状态和设置最小状态长度为零。

建议

防止分析仪选择错误的状态长度,重写你的算法,这样输入对输出有直接影响。同时,选择输入压力最大国家的代码路径长度。

最佳实践,看到的“提示”部分dspunfold

相关的话题