Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

coder.allowpcode

命名空间: coder

从 P 代码文件控制代码生成

说明

示例

coder.allowpcode('plain') 允许您生成 P 代码文件,然后您可以将其编译为优化的 MEX 函数或可嵌入的 C/C++ 代码。此函数不会混淆处理生成的 MEX 函数或可嵌入的 C/C++ 代码。

使用此功能,您可以将算法作为提供代码生成优化的受保护的 P 代码文件进行分发。

在顶层函数的控制流语句(如 ifwhileswitch)和函数调用之前调用此函数。

MATLAB® 函数可以调用 P 代码。当一个文件的 .m.p 版本存在于同一文件夹中时,P 代码文件优先。

在代码生成期间外,系统会忽略 coder.allowpcode

示例

全部折叠

编写函数 p_abs,它返回其输入的绝对值:

function out = p_abs(in)   %#codegen
% The directive %#codegen indicates that the function
% is intended for code generation
coder.allowpcode('plain');
out = abs(in);

生成 P 代码文件。在 MATLAB 命令行窗口中,输入:

pcode p_abs
P 代码文件 p_abs.p 会出现在当前文件夹中。

通过使用 -args 选项指定输入参数的大小、类和复/实性(需要 MATLAB Coder™ 许可证),为 p_abs.p 生成 MEX 函数。

codegen p_abs -args { int32(0) }
codegen 在当前文件夹中生成一个 MEX 函数。

如果您有 MATLAB Coder,则可为 p_abs.p 生成可嵌入的 C 代码。

codegen p_abs -config:lib -args { int32(0) };
codegencodegen\lib\p_abs 文件夹中生成 C 库代码。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2011a 中推出