This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


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, providing intellectual property protection for your source MATLAB code.

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.

See Also



    Introduced in R2011a

    Was this topic helpful?