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
, and break
.
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 packages.
Function calls (see Resolution of Function Calls for Code Generation)
varargin
and varargout
are supported
when you generate single-precision C/C++ code by using the MATLAB
Coder™ app or codegen
with
-singleC
. They are not supported when you use
codegen
with
-double2single
.
For functions that do not use varargin
or
varargout
, 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 or codegen
with
-singleC
.
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
statements
varargin
and varargout
, or
generation of fewer input or output arguments than an entry-point function
defines