Преобразование с одной точностью поддерживает следующий MATLAB® языковые функции:
N-мерные массивы.
Матричные операции, включая удаление строк и столбцов.
Данные переменного размера (см. «Генерация кода для данных переменного размера»). Сравнение графического изображения не поддерживает данные переменного размера.
Индексирование (см. «Несовместимость с MATLAB в операциях индексирования матриц для генерации кода»).
Комплексные числа (см. Генерация кода для комплексных данных).
Числовые классы (см. «Поддерживаемые типы переменных»).
Операторы управления программой if
, switch
, for
, while
, и break
.
Арифметические, реляционные и логические операторы.
Локальные функции.
Глобальные переменные.
Постоянные переменные.
Структуры.
Персонажи.
Одноточное преобразование не поддерживает полный набор Юникода® персонажи. Символы ограничены 8 битами точности в сгенерированном коде. Многие математические операции требуют более 8 бит точности. Если вы намерены преобразовать алгоритм MATLAB в одинарную точность, это лучшая практика не выполнять арифметику с символами.
Классы MATLAB. Преобразование с одной точностью поддерживает:
Свойства класса
Конструкторы
Методы
Специализации
Он не поддерживает наследование классов или пакеты.
Преобразование с одной точностью с использованием 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
, или генерация меньшего количества входных или выходных аргументов, чем задает функция точки входа