Main Content


Package: coder

Control code generation from protected MATLAB files




coder.allowpcode('plain') allows you to generate protected MATLAB® code (P-code) that you can then compile into optimized MEX functions or embeddable C/C++ code. This function does not obfuscate the generated MEX functions or embeddable C/C++ code.

With this capability, you can distribute algorithms as protected P-files that provide code generation optimizations.

Call this function in the top-level function before control-flow statements, such as if, while, switch, and function calls.

MATLAB functions can call P-code. When the .m and .p versions of a file exist in the same folder, the P-file takes precedence.

coder.allowpcode is ignored outside of code generation.


Generate optimized embeddable code from protected MATLAB code:

  1. Write an function p_abs that returns the absolute value of its input:

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

  2. Generate protected P-code. At the MATLAB prompt, enter:

    pcode p_abs
    The P-file, p_abs.p, appears in the current folder.

  3. Generate a MEX function for p_abs.p, using the -args option to specify the size, class, and complexity of the input parameter (requires a MATLAB Coder™ license). At the MATLAB prompt, enter:

    codegen p_abs -args { int32(0) }
    codegen generates a MEX function in the current folder.

  4. Generate embeddable C code for p_abs.p (requires a MATLAB Coder license). At the MATLAB prompt, enter:

    codegen p_abs -config:lib -args { int32(0) };
    codegen generates C library code in the codegen\lib\p_abs folder.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Version History

Introduced in R2011a

See Also

| (MATLAB Coder)