MATLAB Language Features Supported for Single-Precision Conversion
MATLAB Language Features Supported for Single-Precision Conversion
Single-precision conversion supports the following MATLAB® language features:
N-dimensional arrays.
Matrix operations, including deletion of rows and columns.
Variable-size data (see Generate Code for Variable-Size Data). Comparison plotting does not support variable-size data.
Subscripting (see Incompatibility with MATLAB in Matrix Indexing Operations for Code Generation).
Complex numbers (see Code Generation for Complex Data).
Numeric classes (see Supported Variable Types).
Program control statements
if
,switch
,for
,while
, andbreak
.Arithmetic, relational, and logical operators.
Local functions.
Global variables.
Persistent variables.
Structures.
Characters.
Single-precision conversion does not support the complete set of Unicode® characters. Characters are restricted to 8 bits of precision in generated code. Many mathematical operations require more than 8 bits of precision. If you intend to convert your MATLAB algorithm to single precision, it is a best practice not to perform arithmetic with characters.
MATLAB classes. Single-precision conversion supports:
Class properties
Constructors
Methods
Specializations
It does not support class inheritance or namespaces.
Single-precision conversion using
codegen
with the-singleC
option does not support classes when the properties have default values. Property values must be initialized in the constructor. Constant properties cannot be initialized to double precision data types.Function calls (see Resolution of Function Calls for Code Generation)
varargin
andvarargout
are supported when you generate single-precision C/C++ code by using the MATLAB Coder™ app orcodegen
with-singleC
. They are not supported when you usecodegen
with-double2single
.For functions that do not use
varargin
orvarargout
, you can control the number of input or output arguments in the generated entry-point function only if you generate single-precision C/C++ code by using the MATLAB Coder app orcodegen
with-singleC
.
MATLAB Language Features Not Supported for Single-Precision Conversion
Single-precision conversion does not support the following features:
Anonymous functions
Cell arrays
String scalars
Objects of value classes as entry-point function inputs or outputs
Function handles
Java®
Nested functions
Recursion
Sparse matrices
try
/catch
statementsvarargin
andvarargout
, or generation of fewer input or output arguments than an entry-point function defines