主要内容

coder.screener

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

描述

例子

coder.screener (fcn)分析MATLAB入门点®函数fcn将不支持的函数和语言特性识别金宝app为代码生成遵从性问题。代码生成遵从性问题显示在准备报告中。

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

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

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

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

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

coder.screener函数不报告代码生成器视为外部的函数。这类函数的例子有情节,disp,数字。看到非本征函数

例子

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

例子

全部折叠

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

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

函数tf = foo2(源,目标)G =有向图(源,目标);tf = isdag (G);结束

编写的函数foo1调用foo2。保存foo1在文件中foo1.m

函数tf = foo1(源,目标)assert(numel(源)==numel(目标))tf = foo2(源,目标);结束

分析foo1

coder.screener (“foo1”)

代码生成准备报告显示了不支持的MATLAB函数调用的摘要。金宝app这份报告总结选项卡显示,foo2.m对象的一个调用有向图函数和一个调用isdag函数,不支持代码生成。金宝app

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

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

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

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

该报告还显示一个调用树代码生成准备分数。该分数以1-5分为基础。“1”表示需要进行重大更改。5表示代码生成准备工具没有发现问题。在这个例子中,报告分配foo1.m代码生成准备分数为4和foo2.m3分。

这个函数foo2调用两个不支持的MATL金宝appAB函数。要生成一个MEX函数,修改代码以进行调用有向图isdag外部的使用coder.extrinsic指令,然后重新运行代码生成准备工具。

函数tf = foo2(源,目标)编码器。“有向图”,“isdag”);G =有向图(源、目标);tf = isdag (G);结束

重新运行coder.screener在入口点函数上foo1

coder.screener (“foo1”)

的报告不再标记代码生成不支持金宝app有向图dag功能。当您为…生成一个MEX函数时foo1,代码生成器将这两个函数分派给MATLAB执行。

coder.screener函数识别代码生成不支持的MATLAB数据类型。金宝app

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

函数out = myfun1(A) out = calyears(A);结束

分析myfun1

coder.screener (“myfun1”);

代码生成准备报告表明calyears数据类型不支持代码生成。金宝app

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

输入参数

全部折叠

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

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

数据类型:字符|字符串

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

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

数据类型:字符|字符串

限制

  • coder.screener函数不支持金宝appMATLAB在线™

介绍了R2012b