主要内容

coder.screener

确定函数是否适合代码生成

描述

例子

coder.screener (fcn分析了入口点MATLAB®功能fcn将不支持的函数和语言功能识别万博1manbetx为代码生成遵从性问题。代码生成符合性问题显示在就绪报告中。

如果fcn直接或间接调用非MathWorks的其他函数®函数(MATLAB内置函数和工具箱函数),coder.screener分析这些功能。它不分析MathWorks函数。

有可能coder.screener不能检测所有代码生成问题。在某些情况下,有可能coder.screener报告虚假错误。

为了避免未检测到的代码生成问题和错误,在生成代码之前,通过执行以下额外的检查来验证您的MATLAB代码是否适合代码生成:

  • 使用前coder.screener,修复代码分析器识别的问题。

  • 在使用coder.screener,并且在生成C/ c++代码之前,通过生成和验证MEX函数来验证您的MATLAB代码是否适合代码生成。

coder.screener函数不会报告代码生成器视为外部的函数。这些函数的例子如下情节disp,及数字. 看见使用MATLAB引擎在生成的代码中执行函数调用

coder.screener (fcn,“-gpu”)分析了MATLAB的入口点函数fcn识别不支持的函数和语言功能以万博1manbetx生成GPU代码。此选项需要GPU编码器™ 许可证

例子

coder.screener (fcn_1,…,fcn_n分析多个入口点MATLAB函数。

例子

全部折叠

coder.screener函数标识对代码生成不支持的函数的调用。它检查入口点函数,万博1manbetxfoo1,函数,foo2,这foo1调用。

编写的函数foo2并保存在文件中foo2.m

功能tf=foo2(源,目标)G=digraph(源,目标);tf=isdag(G);结束

编写的函数foo1那叫foo2.保存foo1在文件中foo1.m

功能断言(numel(source)==numel(target))) Tf = foo2(source,target);结束

分析foo1

coder.screener (“foo1”

代码生成就绪报告显示不支持的MATLAB函数调用的摘要。报告万博1manbetx总结tab表示foo2.m的调用有向图函数和对isdag函数,该函数不支持代码生成。万博1manbetx

在报告中,单击代码结构选项卡并选择表明MATLAB函数复选框。

此选项卡显示一个饼图,显示每个文件的相对大小以及每个文件对代码生成的适合程度。报告显示:

  • 格林:函数(foo1.m)适合代码生成。

  • 黄色:功能(foo2.m)需要进行重大更改。

该报告还显示一个呼叫树代码生成准备得分. 分数以1-5分为基础。1表示需要进行重大更改。5表示代码生成准备工具未检测到问题。在本例中,报告将指定foo1.m代码生成准备度得分为4和foo2.m3分。

功能foo2调用两个不支持的MATL万博1manbetxAB函数。要生成MEX函数,请修改代码以进行调用有向图isdag通过使用coder.extrinsic指令,然后重新运行代码生成准备工具。

功能tf=foo2(源、目标)编码器。外部(“有向图”“isdag”);G =有向图(源、目标);tf = isdag (G);结束

重播coder.screener在入口点函数上foo1

coder.screener (“foo1”

该报告不再标记代码生成不支持万博1manbetx有向图达格功能。的MEX函数时foo1,代码生成器将这两个函数分派给MATLAB执行。

coder.screener函数标识代码生成不支持的MATLAB数据类型。万博1manbetx

编写的函数myfun1其中包含MATLAB日历持续时间数组数据类型。

功能out = myfun1(A) out = calyears(A);结束

分析myfun1

coder.screener (“myfun1”);

代码生成就绪报告表明calyears代码生成不支持数据类型。万博1manbetx

该报告分配myfun1代码生成准备度得分为3..在生成代码之前,修复报告的问题。

输入参数

全部折叠

用于分析的入口点MATLAB函数的名称。指定为字符向量或字符串标量。

例子:coder.screener(“myfun”);

数据类型:字符|字符串

用于分析的入口点MATLAB函数名的逗号分隔列表。指定为字符向量或字符串标量。

例子:coder.screener(“myfun1”、“myfun2”);

数据类型:字符|字符串

局限性

  • coder.screener中不支持函数万博1manbetxMATLAB在线™

介绍了R2012b