Преобразование с одинарной точностью поддерживает следующий MATLAB® функции языка:
N-мерные массивы.
Операции над матрицей, включая удаление строк и столбцов.
Данные переменного размера (см., Генерируют Код для Данных Переменного Размера). Графический вывод сравнения не поддерживает данные переменного размера.
Индексирование (см. несовместимость с MATLAB в операциях индексирования матриц для генерации кода).
Комплексные числа (см. Генерацию кода для Комплексных данных).
Числовые классы (см. Поддерживаемые Типы переменных).
Операторы программного управления if
, switch
, for
, while
, и break
.
Арифметика, операторы сравнения и логические операторы.
Локальные функции.
Глобальные переменные.
Персистентные переменные.
Структуры.
'characters'.
Преобразование с одинарной точностью не поддерживает полный набор Unicode® 'characters'. Символы ограничиваются 8 битами точности в сгенерированном коде. Много математических операций требуют больше чем 8 битов точности. Если вы намереваетесь преобразовать свой алгоритм MATLAB в одинарную точность, это - лучшая практика, чтобы не выполнить арифметику с символами.
Классы MATLAB. Поддержки преобразования с одинарной точностью:
Class Properties
Конструкторы
Методы
Специализации
Это не поддерживает наследование классов или пакеты.
Использование преобразования с одинарной точностью codegen
с -singleC
опция не поддерживает классы, когда свойства имеют значения по умолчанию. Значения свойств должны быть инициализированы в конструкторе. Постоянные свойства не могут быть инициализированы к типам данных двойной точности.
Вызовы функции (см. Разрешение Вызовов функции для Генерации кода),
varargin
и varargout
поддерживаются, когда вы генерируете код C/C++ с одинарной точностью при помощи приложения MATLAB Coder™ или codegen
с -singleC
. Они не поддерживаются, когда вы используете codegen
с -double2single
.
Для функций, которые не используют varargin
или varargout
, можно управлять количеством аргументов ввода или вывода в сгенерированной функции точки входа, только если вы генерируете код C/C++ с одинарной точностью при помощи приложения MATLAB Coder или codegen
с -singleC
.
Преобразование с одинарной точностью не поддерживает следующие функции:
Анонимные функции
Массивы ячеек
Строковые скаляры
Объекты классов значения как входные параметры функции точки входа или выходные параметры
Указатели на функции
Java®
Вложенные функции
Рекурсия
Разреженные матрицы
try
/catch
операторы
varargin
и varargout
, или генерация меньшего количества аргументов ввода или вывода, чем функция точки входа задает