Функции языка MATLAB, поддерживаемые для преобразования с одной точностью

Функции языка MATLAB, поддерживаемые для преобразования с одной точностью

Преобразование с одной точностью поддерживает следующий 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.

Функции языка MATLAB, не поддерживаемые для преобразования с одной точностью

Преобразование с одной точностью не поддерживает следующие функции:

  • Анонимные функции

  • Массивы ячеек

  • Строковые скаляры

  • Объекты классов значений как входные параметры функции точки входа или выходов

  • Указатели на функцию

  • Java®

  • Вложенные функции

  • Рекурсия

  • Разреженные матрицы

  • try/ catch операторы

  • varargin и varargout, или генерация меньшего количества входных или выходных аргументов, чем задает функция точки входа