Main Content

MATLAB Language Features Supported for Automated Fixed-Point Conversion

MATLAB Language Features Supported for Automated Fixed-Point Conversion

Fixed-Point Designer™ supports these MATLAB® language features in automated fixed-point conversion workflows:

  • N-dimensional arrays

  • Matrix operations, including deletion of rows and columns

  • Variable-size data (see Generate Code for Variable-Size Arrays). Range computation for variable-size data is supported via simulation mode only. Variable-size data is not supported for comparison plotting.

  • Subscripting (see Incompatibility with MATLAB in Matrix Indexing Operations for Code Generation)

  • Complex numbers (see Code Generation for Complex Data (Fixed-Point Designer))

  • Signed and unsigned integer classes (see Integers)

  • Double- and single-precision floating point numbers (see double and single)

  • Boolean variables (see logical)

  • Fixed-point data types

  • Double-precision, single-precision, and integer math

  • Fixed-point arithmetic (see Code Acceleration and Code Generation from MATLAB (Fixed-Point Designer))

  • Program control statements if, switch, for, while, and break

  • Arithmetic, relational, and logical operators

  • Global variables

  • Persistent variables

  • Function handles

  • Structures, including arrays of structures. Range computation for structures is supported via simulation mode only.

  • Characters

  • Local functions when used outside of a class. Local functions called from inside class definitions are not supported.

  • The complete set of Unicode® characters is not supported for code generation. Characters are restricted to 8 bits of precision in generated code. Because many mathematical operations require more than 8 bits of precision, it is recommended that you do not perform arithmetic with characters if you intend to convert your MATLAB algorithm to fixed point.

  • MATLAB classes. Range computation for MATLAB classes is supported via simulation mode only.

    Automated conversion supports:

    • Class properties

    • Constructors

    • Methods

    • Specializations

    Automated conversion does not support class inheritance or namespaces. For more information, see Fixed-Point Code for MATLAB Classes (Fixed-Point Designer).

  • Ability to call functions (see Resolution of Function Calls for Code Generation)

  • Subset of MATLAB toolbox functions (see Functions Supported for Code Acceleration or C Code Generation (Fixed-Point Designer)).

  • Subset of DSP System Toolbox™ System objects.

    The DSP System Toolbox System objects supported for automated conversion are:

MATLAB Language Features Not Supported for Automated Fixed-Point Conversion

Fixed-Point Designer does not support these features in automated fixed-point conversion workflows:

  • Anonymous functions

  • Cell arrays

  • String scalars

  • Objects of value classes as entry-point function inputs or outputs

  • Java®

  • Nested functions

  • Recursion

  • Sparse matrices

  • try/catch statements

  • varargin, varargout, or generation of fewer input or output arguments than an entry-point function defines

  • Dot indexing properties of fixed-point data types.

    Avoid using properties of fixed-point types in MATLAB code being converted.

  • Dynamic field or property references

  • Handle class destructors

  • Arguments blocks

  • Property validation functions

  • Functions that do not support fixed-point data types