coder.MexCodeConfig

Параметры конфигурации для генерации MEX-функции из кода MATLAB

Описание

coder.MexCodeConfig объект содержит параметры конфигурации это codegen использование при генерации MEX-функции. Передайте объект codegen функция при помощи -config опция.

Создание

Описание

пример

cfg = coder.config('mex') создает coder.MexCodeConfig объект.

cfg = coder.config создает coder.MexCodeConfig объект.

Свойства

развернуть все

Параметры форматирования кода для сгенерированного кода в виде одного из значений в таблице.

ЗначениеОписание
'Clang-format'

Генератор кода форматирует сгенерированный код согласно clang-format файл.

'Auto'

Использует внутреннюю эвристику, чтобы определить, отформатирован ли сгенерированный код clang-format или инструмент форматирования MathWorks®.

Определить, отформатирован ли сгенерированный код clang-format, в a coder.config объект, набор Verbosity опция к 'Verbose'.

'MathWorks'

Заставляет генератор кода возвращаться к инструменту форматирования MathWorks.

Максимальное количество функциональных специализаций для рекурсии времени компиляции в виде положительного целого числа. Чтобы запретить рекурсию в коде MATLAB®, установите CompileTimeRecursionLimit к 0. Предел рекурсии времени компиляции по умолчанию является достаточно большим для большинства рекурсивных функций, которые требуют этого типа рекурсии. Если генерация кода перестала работать из-за предела рекурсии времени компиляции, и вы хотите рекурсию времени компиляции, пытаетесь увеличить предел. В качестве альтернативы измените свой код MATLAB так, чтобы генератор кода использовал рекурсию во время выполнения. Смотрите Достигнутый Предел Рекурсии Времени компиляции.

Максимальное количество инструкций, что постоянная папка выполняется. В некоторых ситуациях генерация кода требует, чтобы конкретные инструкции были постоянными. Если сворачивание констант останавливается, прежде чем эти инструкции постоянно свернуты, сбои генерации кода. В этом случае увеличьте значение ConstantFoldingTimeout.

Смотрите оптимизацию MATLAB Coder в сгенерированном коде.

Постоянный входной режим проверки в виде одного из значений в этой таблице.

ЗначениеОписание
'CheckValues'

Это значение является значением по умолчанию.

Когда вы вызываете MEX-функцию, она проверяет, что значение, вы предусматриваете постоянный входной параметр, является значением, заданным во время генерации кода.

Можно вызвать MEX-функцию и исходную функцию MATLAB с теми же аргументами. Поэтому можно использовать тот же тестовый файл для обеих функций.

Проверка значений может замедлить выполнение MEX-функции.

'IgnoreValues'

Когда вы вызываете MEX-функцию, она игнорирует значение, что вы предусматриваете постоянный входной параметр. Это использует значение, заданное во время генерации кода.

Можно использовать тот же тестовый файл без издержек проверки значений аргумента константы.

'Remove'

Генератор кода удаляет постоянные входные параметры из подписи MEX-функции. Когда вы вызываете MEX-функцию, вы не вводите значение для постоянного входного параметра.

Эта опция обеспечивает обратную совместимость.

Смотрите, что постоянный вход регистрируется в MEX-функциях.

Сгенерировать ли пространства имен C++ для пакетов в вашем коде MATLAB в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Генератор кода производит пространства имен C++ для пакетов в вашем коде MATLAB. Смотрите Организуют Сгенерированный Код С++ в Пространства имен.

false

Генератор кода не производит пространства имен C++ для пакетов в вашем коде MATLAB.

Зависимость:

  • Установка TargetLang к 'C++' включает этот параметр.

Типы данных: логический

Пространство имен для сгенерированного Кода С++. Генератор кода не производит код в пространстве имен, если вы не задаете непустой вектор символов.

Смотрите организуют сгенерированный код С++ в пространства имен.

Зависимость:

  • Установка TargetLang к 'C++' включает этот параметр.

Пространство имен для Кода С++ сгенерировано для кода MathWorks. Генератор кода не производит такое пространство имен, если вы задаете это свойство как пустой символьный вектор.

Смотрите организуют сгенерированный код С++ в пространства имен.

Зависимость:

  • Установка TargetLang к 'C++' включает этот параметр.

Типы данных: char

Сгенерировать ли классы C++, или C разрабатывают структуры для классов MATLAB в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Генератор кода производит классы C++ для классов MATLAB. Смотрите Генерируют Классы C++ для Классов MATLAB.

false

Генератор кода производит структуры стиля C для классов MATLAB.

Зависимость:

  • Установка TargetLang к 'C++' включает этот параметр.

Типы данных: логический

Пользовательский код, который появляется около верхней части каждого заголовочного файла C/C++, сгенерированного из вашего кода MATLAB, кроме rtwtypes.h и rtwhalf.hВ виде вектора символов.

Включайте папки, чтобы добавить к включать пути при компиляции сгенерированного кода. Укажите, что список включает папки как массив строк, массив ячеек вектора символов или вектора символов.

Несколько имен папок в виде одного из значений в этой таблице.

ЗначениеОписание
Массив строк

Массив строк в CustomInclude. Например, cfg.CustomInclude = ["C:\Project","C:\Custom Files"];

Массив ячеек из символьных векторов

Массив ячеек из символьных векторов в CustomInclude. Например, cfg.CustomInclude = {'C:\Project','C:\Custom Files'};

Символьный вектор

Отдельный включают папки a pathsep символ в CustomInclude. Например, cfg.CustomInclude = ['C:\Project' pathsep 'C:\Custom Files'];

Примечание

Определение многократных въездов в объектах настройки кода при помощи векторов символов будет удалено в будущем релизе. Используйте массив строк и массив ячеек вектора символов вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Пользовательский код, чтобы включать в сгенерированное инициализирует функцию в виде вектора символов.

Статические файлы библиотеки, чтобы соединиться со сгенерированным кодом в виде массива строк, массива ячеек вектора символов или вектора символов.

Несколько статических имен файлов библиотеки в виде одного из значений в этой таблице.

ЗначениеОписание
Массив строк

Массив строк в CustomLibrary. Например, cfg.CustomLibrary = ["myLib1.lib","myLib2.lib"];

Массив ячеек из символьных векторов

Массив ячеек из символьных векторов в CustomLibrary. Например, cfg.CustomLibrary = {'myLib1.lib','myLib2.lib'};

Символьный вектор

Разделите статические имена файлов библиотеки a pathsep символ в CustomLibrary. Например, cfg.CustomLibrary = ['myLib1.lib' pathsep 'myLib2.lib'];

Примечание

Определение многократных въездов в объектах настройки кода при помощи векторов символов будет удалено в будущем релизе. Используйте массив строк и массив ячеек вектора символов вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Исходные файлы, чтобы скомпилировать и соединиться со сгенерированным кодом в виде массива строк, массива ячеек вектора символов или вектора символов.

Процесс сборки ищет исходные файлы сначала в текущей папке, и затем во включать папках, которые вы задаете в CustomInclude. Если исходные файлы с тем же именем происходят в нескольких папках на пути поиска файлов, процесс сборки может использовать различный файл, чем файл, который вы задали.

Предположим, что вы задаете foo.cpp как исходный файл. Если foo.c и foo.cpp находятся оба на пути поиска файлов, вы не можете быть уверены, использует ли процесс сборки foo.c или foo.cpp.

Несколько имен исходного файла в виде одного из значений в этой таблице.

ЗначениеОписание
Массив строк

Массив строк в CustomSource. Например, cfg.CustomSource = ["mySrc1.c","mySrc2.c"];

Массив ячеек из символьных векторов

Массив ячеек из символьных векторов в CustomSource. Например, cfg.CustomSource = {'mySrc1.c','mySrc2.c'};

Символьный вектор

Отдельный исходный файл называет a pathsep символ в CustomSource. Например, cfg.CustomSource = ['mySrc1.c' pathsep 'mySrc2.c'];

Примечание

Определение многократных въездов в объектах настройки кода при помощи векторов символов будет удалено в будущем релизе. Используйте массив строк и массив ячеек вектора символов вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Укажите, что код, чтобы появиться около верхней части каждого сгенерировал .c или .cpp файл (кроме rtwhalf.c или rtwhalf.cpp), за пределами любой функции. Задайте код как вектор символов.

Не задавайте статическое функциональное определение C.

Код, который появляется в сгенерированной оконечной функции в виде вектора символов.

Объект Configuration для генерации кода для нейронных сетей для глубокого обучения в виде coder.MklDNNConfig объект.

coder.MklDNNConfig объект содержит параметры, характерные для генерации Кода С++ для глубокого обучения с помощью Intel® MKL-DNN. Создать coder.MklDNNConfig объект, использовать coder.DeepLearningConfig. Например:

cfg = coder.config('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');

Генерация кода для нейронных сетей для глубокого обучения требует Deep Learning Toolbox™ и Интерфейса MATLAB Coder™ для пакета поддержки Библиотек Глубокого обучения.

Смотрите генерацию кода для нейронных сетей для глубокого обучения с MKL-DNN.

Примечание

Генерация кода MEX не поддерживается для глубокого обучения, пользующегося Библиотекой ARM® Compute.

Зависимость: если DeepLearningConfig установлен, codegen наборы TargetLang к C++.

Режим динамического выделения памяти в виде одного из значений в этой таблице.

ЗначениеОписание
'Threshold'

Это значение является значением по умолчанию.

Генератор кода выделяет память динамически на куче для массивов переменного размера, размер которых (в байтах) больше или равен DynamicMemoryAllocationThreshold.

'AllVariableSizeArrays'Генератор кода динамически выделяет память для всех массивов переменного размера на куче.
'Off'

Генератор кода статически выделяет память для массивов переменного размера на стеке.

Неограниченные массивы переменного размера требуют динамического выделения памяти.

Зависимости:

  • EnableVariableSizing включает этот параметр.

  • Установка этого DynamicMemoryAllocation к 'Threshold' включает DynamicMemoryAllocationThreshold параметр.

Смотрите генерируют код для данных Переменного Размера.

Реализация динамически выделенного массива в интерфейсе сгенерированного C/C++ функционирует в виде одного из значений в этой таблице.

ЗначениеОписание
'Auto'

Это - значение по умолчанию. Если вы устанавливаете TargetLang параметр к 'C++' или 'C', это значение соответственно ведет себя как тот же флаг.

'C'

Сгенерированный код использует стиль C emxArray структура данных, чтобы реализовать динамически выделенные массивы. Смотрите Использование C Массивы в Сгенерированных Функциональных Интерфейсах.

'C++'

Если вы устанавливаете TargetLang параметр к 'C', это значение отключено.

Сгенерированный код использует coder::array шаблон класса, чтобы реализовать динамически выделенные массивы. Смотрите Использование Динамически Выделенные Массивы C++ в Сгенерированных Функциональных Интерфейсах.

Зависимость:

  • EnableVariableSizing включает этот параметр.

Порог размера для динамического выделения памяти массивов переменного размера в виде положительного целого числа. Генератор кода использует динамическое выделение памяти для массивов переменного размера, размер которых (в байтах) больше или равен порогу.

Зависимость:

  • Установка DynamicMemoryAllocation к 'Threshold' включает этот параметр.

Смотрите генерируют код для данных Переменного Размера.

Автоматическое распараллеливание for циклы, столь же заданные как одно из значений в этой таблице.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Генератор кода автоматически не параллелизирует for циклы.

true

Генератор кода автоматически параллелизирует for циклы в сгенерированном коде. Автоматическое распараллеливание может значительно улучшить скорость выполнения сгенерированного кода. Смотрите Автоматически Параллелизируют циклы for в Сгенерированном коде.

Типы данных: логический

Выражение, отзывающееся эхом в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

MEX-функция отображает вывод операторов, которые не заканчиваются точкой с запятой.

false

MEX-функция не отображает вывод операторов, которые не заканчиваются точкой с запятой.

Это свойство не применяется к общим функциям визуализации, такой как disp, plot, или figure когда они называются как внешняя функция. MEX-функции отображают вывод тех функций независимо от присутствия точки с запятой или значения EchoExpressions.

Автоматические внешние вызовы функции в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Генератор кода обрабатывает некоторые общие функции визуализации, когда значение внешних параметров функционирует. Вы не должны объявлять эти функции как значение внешних параметров при помощи coder.extrinsic. Эта возможность уменьшает количество времени, что вы тратите создание вашего кода, подходящего для генерации кода.

falseГенератор кода не обрабатывает общие функции визуализации, когда значение внешних параметров функционирует, если вы не объявляете их как значение внешних параметров при помощи coder.extrinsic.

Некоторые общие функции визуализации plot, disp, и figure. Смотрите используют MATLAB Engine, чтобы выполнить вызов функции в сгенерированном коде.

Режим отладки компилятора C в виде одного из значений в этой таблице.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Генератор кода не включает режим отладки компилятора C.

true

Генератор кода включает режим отладки компилятора C. Когда режим отладки включен, компилятор C не оптимизирует код. Компиляция быстрее, но выполнение медленнее.

Своевременный (JIT) режим компиляции в виде одного из значений в этой таблице.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Генератор кода создает функцию MEX C/C++ путем генерации и компиляции кода C/C++.

true

Генератор кода использует своевременную (JIT) технологию компиляции для генерации MEX-функции. Генератор кода создает MEX-функцию JIT, которая содержит абстрактное представление кода MATLAB. Когда вы запускаете MEX-функцию JIT, MATLAB генерирует исполняемый код в памяти.

Чтобы ускорить генерацию MEX-функций, установите EnableJIT к true.

JIT-компиляция несовместима с определенными функциями генерации кода и опциями, такова как пользовательский код или использование библиотеки OpenMP. Если вы задаете JIT-компиляцию, и генератор кода не может использовать ее, она генерирует функцию MEX C/C++ с предупреждением. Если EnableJIT и EnableOpenMP true, и ваше использование кода parfor, генератор кода использует JIT-компиляцию и обрабатывает parfor- циклы как for- циклы.

Смотрите ускоряют генерацию MEX при помощи JIT-компиляции.

memcpy оптимизация в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Если возможно, генератор кода использует memcpy оптимизация. Оптимизировать код, который копирует последовательные элементы массива, memcpy оптимизация заменяет код на memcpy вызвать. Когда число элементов, чтобы скопировать известно во время компиляции, генератор кода использует MemcpyThreshold свойство определить, использовать ли оптимизацию. См. memcpy Оптимизацию.

false

Генератор кода не использует memcpy оптимизация.

Включение профилирования сгенерированной MEX-функции в виде одного из значений в этой таблице.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Генератор кода не включает инструментирование для профилирования в сгенерированной MEX-функции.

true

Генератор кода включает инструментирование для профилирования в сгенерированной MEX-функции. Можно затем использовать профилировщика MATLAB, чтобы профилировать MEX, Смотрите MEX-функции Профиля при помощи профилировщика MATLAB.

Распараллеливание parfor- циклы в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

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

false

Генератор кода обрабатывает parfor- циклы как for- циклы.

Смотрите parfor.

Использование библиотеки OpenMP не совместимо со своевременной (JIT) компиляцией. Если EnableJIT и EnableOpenMP true, генератор кода использует JIT-компиляцию и обрабатывает parfor- циклы как for- циклы.

Поддержка рекурсии во время выполнения в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Рекурсивные функции позволены в сгенерированном коде.

false

Рекурсивные функции не позволены в сгенерированном коде.

Некоторые стандарты кодирования, такие как MISRA®, не позволяют рекурсию. Чтобы увеличить вероятность генерации кода, который совместим с MISRA C®, устанавливает EnableRuntimeRecursion к false.

Если ваш код MATLAB требует рекурсии во время выполнения и EnableRuntimeRecursion false, сбои генерации кода.

Смотрите генерацию кода для рекурсивных функций.

Поддержка массивов переменного размера в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Массивы переменного размера позволены для генерации кода.

false

Массивы переменного размера не позволены для генерации кода.

Зависимость:

  • Включает Dynamic memory allocation.

Смотрите генерацию кода для массивов Переменного Размера.

Внешняя поддержка вызова функции в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Для внешней функции генератор кода производит вызов функции MATLAB. Генератор кода не генерирует внутренний код для функции.

false

Генератор кода игнорирует внешнюю функцию. Это не генерирует код для вызова функции MATLAB. Если внешняя функция влияет на выход функции MATLAB, генератор кода выпускает ошибку компиляции.

Если вы устанавливаете ExtrinsicCalls к false, сгенерированная MEX-функция не может отобразить сообщения во время выполнения от error или assert операторы в вашем коде MATLAB. MEX-функция сообщает, что не может отобразить сообщение об ошибке. Чтобы видеть сообщение об ошибке, установите ExtrinsicCalls к true и сгенерируйте MEX-функцию снова.

Значение ExtrinsicCalls влияет, как MEX-функция генерирует случайные числа за rand, randi, и randn. Если ExtrinsicCalls true, MEX-функция использует глобальный поток случайных чисел MATLAB, чтобы сгенерировать случайные числа. В противном случае MEX-функция использует автономный генератор случайных чисел.

Смотрите используют MATLAB Engine, чтобы выполнить вызов функции в сгенерированном коде.

Режим разделения файла, заданный как одно из значений в этой таблице.

ЗначениеОписание
'MapMFileToCFile'

Это значение является значением по умолчанию.

Генератор кода производит отдельные файлы C/C++ для каждого файла языка MATLAB.

'SingleFile'Генератор кода производит один файл для функций C/C++, которые сопоставляют с вашими функциями точки входа MATLAB. Генератор кода производит отдельные файлы C/C++ для служебных функций.

Смотрите как сгенерированный код разделов MATLAB Coder.

Генерация только исходного кода в виде одного из значений в этой таблице.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Генератор кода производит исходный код C/C++ и создает объектный код.

true

Генератор кода производит исходный код C/C++, но не вызывает сделать команду или создает объектный код. Когда вы выполняете итерации между изменением кода MATLAB, и генерация кода C/C++, генерируя только код может сэкономить время.

Комментарии в сгенерированном коде в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Генератор кода помещает комментарии в сгенерированный код.

falseГенератор кода не помещает комментарии в сгенерированный код.

Отчет генерации кода в виде одного из значений в этой таблице.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Генератор кода представляет отчет, только если сообщения об ошибке или предупреждающие сообщения происходят, или если вы устанавливаете LaunchReport к true.

trueГенератор кода представляет отчет генерации кода.

Режим синхронизации глобальных данных в виде одного из значений в этой таблице.

ЗначениеОписание для глобальных данныхОписание для постоянных глобальных данных

'SyncAlways' (значение по умолчанию)

Это значение является значением по умолчанию.

Синхронизирует глобальные данные при входе и выходе MEX-функции и для внешних призывов к максимальной непротиворечивости между MATLAB и сгенерированной MEX-функцией. Чтобы максимизировать эффективность, если внешние вызовы не изменяют глобальные данные, используют эту опцию с coder.extrinsic -sync:off опция, чтобы выключить синхронизацию для этих вызовов.

Проверяет непротиворечивость постоянных глобальных данных при записи MEX-функции и после внешних вызовов. Если значения глобальных данных в глобальной рабочей области MATLAB противоречивы со временем компиляции постоянные глобальные значения в MEX-функции, концах MEX-функции с ошибкой. Используйте coder.extrinsic -sync:off опция, чтобы выключить проверки на непротиворечивость после определенных внешних вызовов.

'SyncAtEntryAndExits'

Синхронизирует глобальные данные при входе и выходе MEX-функции только. Чтобы максимизировать эффективность, если только несколько внешних глобальных данных изменения вызовов, используют эту опцию с coder.extrinsic -sync:on опция, чтобы включить синхронизацию для этих вызовов.

Проверяет постоянные глобальные данные при записи MEX-функции только. Если значения глобальных данных в глобальной рабочей области MATLAB противоречивы со временем компиляции постоянные глобальные значения в MEX-функции, концах MEX-функции с ошибкой. Используйте coder.extrinsic -sync:on опция, чтобы включить проверки на непротиворечивость после определенных внешних вызовов.

'NoSync'

Отключает синхронизацию. Прежде, чем отключить синхронизацию, проверьте, что ваша MEX-функция не взаимодействует с глобальными данными MATLAB. В противном случае несоответствия между MATLAB и MEX-функцией могут произойти.

Отключает проверки на непротиворечивость.

Смотрите генерируют код для глобальных данных.

Отображение потенциального упорядоченного по строкам КПД размещения выходит в виде одного из значений в этой таблице.

ЗначениеОписание
true

Отчет генерации кода отображает потенциальные проблемы КПД из-за упорядоченного по строкам размещения. (Это значение является значением по умолчанию.)

falseОтчет генерации кода не отображает проблемы, связанные с размещением массивов.

См. проект кода для упорядоченного по строкам размещения массивов.

Присвоение плавания и дважды обнуляет с memsetВ виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Если возможно, генератор кода использует memset оптимизация для присвоения нуля с плавающей точкой к последовательным элементам массива. Присваивать последовательные элементы массива, memset оптимизация использует memset вызвать. Когда число элементов, чтобы присвоить известно во время компиляции, генератор кода использует MemcpyThreshold свойство определить, использовать ли оптимизацию. См. memset Оптимизацию.

false

Генератор кода не использует memset оптимизация для присвоения плавания и дважды обнуляет к последовательным элементам массива.

Встраивание поведения на всех сайтах вызова, где MathWorks вызывает другую функцию MathWorks в виде одного из значений в этой таблице.

ЗначениеОписание
'Speed'

Это значение является значением по умолчанию.

Использует внутреннюю эвристику, чтобы определить, выполнить ли встраивание на сайте вызова. Эта установка обычно приводит к очень оптимизированному коду.

'Always'

Всегда выполняет встраивание на сайте вызова.

'Readability'

Почти никогда не встраивает вызовы функции, за исключением вызовов очень небольших функций. Модульный принцип консервов кода, не жертвуя слишком большой скоростью, когда это возможно. Результаты в очень читаемом коде.

'Never'

Никогда не встраивает вызовы функции. Результаты в максимальной удобочитаемости. Эта установка может значительно уменьшать эффективность сгенерированного кода.

Даже если вы выбираете 'Always' или 'Never' опция для установки, в определенных случаях, генератор кода не может строго следовать тем инструкциям. Например, если существует конфликт, coder.inline('always') или coder.inline('never') директива, помещенная в теле функции, заменяет эту опцию. Для получения дополнительной информации смотрите Взаимодействие Между Различными Средствами управления Встраиванием.

Смотрите, что управление встраивает, чтобы подстроить эффективность и удобочитаемость сгенерированного кода.

Встраивание поведения на всех сайтах вызова, где функция, которую вы записали, вызывает функцию MathWorks или MathWorks вызовы функции функция, которую вы записали. Заданный как одно из значений в этой таблице.

ЗначениеОписание
'Speed'

Это значение является значением по умолчанию.

Использует внутреннюю эвристику, чтобы определить, выполнить ли встраивание на сайте вызова. Эта установка обычно приводит к очень оптимизированному коду.

'Always'

Всегда выполняет встраивание на сайте вызова.

'Readability'

Почти никогда не встраивает вызовы функции, за исключением вызовов очень небольших функций. Модульный принцип консервов кода, не жертвуя слишком большой скоростью, когда это возможно. Результаты в очень читаемом коде.

'Never'

Никогда не встраивает вызовы функции. Результаты в максимальной удобочитаемости. Эта установка может значительно уменьшать эффективность сгенерированного кода.

Даже если вы выбираете 'Always' или 'Never' опция для установки, в определенных случаях, генератор кода не может строго следовать тем инструкциям. Например, если существует конфликт, coder.inline('always') или coder.inline('never') директива, помещенная в теле функции, заменяет эту опцию. Для получения дополнительной информации смотрите Взаимодействие Между Различными Средствами управления Встраиванием.

Смотрите, что управление встраивает, чтобы подстроить эффективность и удобочитаемость сгенерированного кода.

Встраивание поведения на всех сайтах вызова, где функция, которую вы записали, вызывает другую функцию, которую вы записали в виде одного из значений в этой таблице.

ЗначениеОписание
'Speed'

Это значение является значением по умолчанию.

Использует внутреннюю эвристику, чтобы определить, выполнить ли встраивание на сайте вызова. Эта установка обычно приводит к очень оптимизированному коду.

'Always'

Всегда выполняет встраивание на сайте вызова.

'Readability'

Почти никогда не встраивает вызовы функции, за исключением вызовов очень небольших функций. Модульный принцип консервов кода, не жертвуя слишком большой скоростью, когда это возможно. Результаты в очень читаемом коде.

'Never'

Никогда не встраивает вызовы функции. Результаты в максимальной удобочитаемости. Эта установка может значительно уменьшать эффективность сгенерированного кода.

Даже если вы выбираете 'Always' или 'Never' опция для установки, в определенных случаях, генератор кода не может строго следовать тем инструкциям. Например, если существует конфликт, coder.inline('always') или coder.inline('never') директива, помещенная в теле функции, заменяет эту опцию. Для получения дополнительной информации смотрите Взаимодействие Между Различными Средствами управления Встраиванием.

Смотрите, что управление встраивает, чтобы подстроить эффективность и удобочитаемость сгенерированного кода.

Проверка целостности памяти в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Сгенерированный код обнаруживает выполнение нарушений и остановок целостности памяти с диагностическим сообщением.

false

Сгенерированный код не обнаруживает нарушения целостности памяти.

Установка IntegrityChecks к false может улучшать производительность. Однако без проверок целостности памяти, нарушения приводят к непредсказуемому поведению. Установите IntegrityChecks к false только если вы проверили, что проверка границ массивов и проверка размерности являются ненужными. Установка IntegrityChecks к false также отключает стек этапа выполнения.

Смотрите проверки на этапе выполнения управления.

Автоматический открытый из генерации кода сообщают в виде одного из значений в этой таблице.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Если ошибки или предупреждения происходят, или если GenerateReport true, генератор кода представляет отчет, но не открывает отчет.

trueГенератор кода производит и открывает отчет генерации кода.

Включение исходного кода MATLAB как комментарии в сгенерированном коде в виде одного из значений в этой таблице.

ЗначениеОписание
false

Это значение является значением по умолчанию.

Генератор кода не вставляет исходный код MATLAB как комментарии в сгенерированном коде. Генератор кода не включает подпись функции MATLAB в функциональный баннер.

true

Генератор кода вставляет исходный код MATLAB как комментарии в сгенерированном коде. Тег трассируемости сразу предшествует каждой линии исходного кода. Тег трассируемости помогает вам определить местоположение соответствующего исходного кода MATLAB. Смотрите Трассировку Сгенерированный Код C/C++ к Исходному коду MATLAB.

Генератор кода также включает подпись функции MATLAB в функциональный баннер.

Зависимость:

  • GenerateComments включает этот параметр.

Смотрите Трассировку Сгенерированный Код C/C++ к Исходному коду MATLAB.

Минимальный размер, в байтах, для memcpy или memset оптимизации в виде положительного целого числа.

Чтобы оптимизировать сгенерированный код, который копирует последовательные элементы массива, генератор кода пытается заменить код на memcpy вызвать. Чтобы оптимизировать сгенерированный код, который присваивает литеральную константу последовательным элементам массива, генератор кода пытается заменить код на memset вызвать.

Количество байтов является количеством элементов массива, чтобы скопировать или присвоить умноженный на количество байтов, требуемых для типа данных C/C++.

Если число элементов, чтобы скопировать или присвоить является переменным (не известный во время компиляции), генератор кода игнорирует MemcpyThreshold свойство.

См. memcpy Оптимизацию и memset Оптимизацию.

Имя объекта в виде вектора символов.

Команда, чтобы настроить сборку, обрабатывающую после генерации MEX-функции с codegenВ виде вектора символов.

Смотрите индивидуальную настройку процесса сборки.

Генерация кода, который использует N-мерную индексацию в виде одного из значений в этой таблице.

ЗначениеОписание
false

Сгенерируйте код, который использует одномерную индексацию. (Это значение является значением по умолчанию.)

trueСгенерируйте код, который использует N-мерную индексацию.

Смотрите генерируют код, который использует n-мерную индексацию.

Имена переменных, чтобы сохранить в сгенерированном коде в виде одного из значений в этой таблице.

ЗначениеОписание
'None'

Это значение является значением по умолчанию.

Генератор кода не должен сохранять имена переменных. Это может снова использовать любые переменные, которые удовлетворяют требования для переменного повторного использования.

Если ваш код использует большие структуры или массивы, установку PreserveVariableNames к 'None' может уменьшать использование памяти или улучшить скорость выполнения.

'UserNames'

Генератор кода сохраняет имена, которые соответствуют переменным, которые вы задаете в коде MATLAB. Это не заменяет ваше имя переменной на другое имя и не использует ваше имя для другой переменной. Чтобы улучшить удобочитаемость, установите PreserveVariableNames к 'UserNames'. Затем можно более легко проследить переменные в сгенерированном коде назад к переменным в коде MATLAB.

Установка PreserveVariableNames к 'UserNames' не препятствует тому, чтобы оптимизация удалила ваши переменные из сгенерированного кода, или препятствует тому, чтобы компилятор C/C++ снова использовал переменные в сгенерированном двоичном коде.

'All'

Сохраните все имена переменных. Это значение параметров отключает переменное повторное использование. Используйте его только для тестирования или отладки, не для производственного кода.

Смотрите имена переменных заповедника в сгенерированном коде.

Имя переменной, в которую вы экспортируете информацию о генерации кода в виде вектора символов. Генератор кода создает эту переменную в основном рабочем пространстве MATLAB. Эта переменная содержит информацию о настройках генерации кода, входных файлах, сгенерированных файлах и сообщениях генерации кода.

Смотрите, что Генерация Кода доступа Сообщает информацию Программно и coder.ReportInfo Свойства.

Разность потенциалов, сообщающая в виде одного из значений в этой таблице:

ЗначениеОписание
trueГенератор кода сообщает о потенциальных различиях в поведении между сгенерированным кодом и кодом MATLAB. Разности потенциалов перечислены на вкладке отчета генерации кода. Разность потенциалов является различием, которое происходит во время выполнения только при определенных обстоятельствах.
falseГенератор кода не сообщает о разностях потенциалов.

Смотрите, что разности потенциалов сообщают.

Список имен, которые генератор кода не должен использовать для функций или переменных в виде строковые массивы, массив ячеек из символьных векторов или вектор символов.

Несколько зарезервированных имен в виде одного из значений в этой таблице.

ЗначениеОписание
Массивы строк

Массив строк в ReservedNameArray. Например, cfg.ReservedNameArray = ["reserve1","reserve2","reserve3"].

Массив ячеек из символьных векторов

Массив ячеек из символьных векторов в ReservedNameArray. Например, cfg.ReservedNameArray = {'reserve1','reserve2','reserve3'}.

Векторы символов

Разделенный от точки с запятой список зарезервированных имен в ReservedNameArray. Например, cfg.ReservedNameArray = 'reserve1;reserve2;reserve3'.

Примечание

Определение многократных въездов в объектах настройки кода при помощи векторов символов будет удалено в будущем релизе. Используйте массив строк и массив ячеек вектора символов вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Скорость отклика проверяет в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Можно использовать Ctrl+C, чтобы остановить выполнение сгенерированной MEX-функции.

false

Чтобы закончить продолжительную MEX-функцию, вам придется отключить MATLAB.

Смотрите проверки на этапе выполнения управления.

Генерация кода, который использует упорядоченное по строкам размещение массивов в виде одного из значений в этой таблице.

ЗначениеОписание
false

Сгенерируйте код, который использует упорядоченное по столбцам размещение массивов. (Это значение является значением по умолчанию.)

trueСгенерируйте код, который использует упорядоченное по строкам размещение массивов.

Смотрите генерируют код, который использует упорядоченное по строкам размещение массивов.

Поддержка целочисленного переполнения в виде одного из значений в этой таблице.

ЗначениеОписание
true

Это значение является значением по умолчанию.

Генератор кода производит код, чтобы обработать целочисленное переполнение. Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных.

false

Генератор кода не производит код, чтобы обработать целочисленное переполнение. Не устанавливайте SaturateOnIntegerOverflow к false если вы не уверены, что ваш код не зависит от поддержки целочисленного переполнения. Если вы отключаете поддержку целочисленного переполнения, и проверки целостности включены, сгенерированный код производит ошибку для переполнения. Если вы отключаете поддержку целочисленного переполнения, и вы отключаете проверки целостности, поведение переполнения зависит от вашего целевого компилятора C. В стандарте C поведение для целочисленного переполнения не определено. Однако большинство компиляторов C переносится на переполнении.

Этот параметр применяет только к MATLAB встроенные целочисленные типы. Это не применяется, удваивается, одиночные игры или типы данных с фиксированной точкой.

Смотрите отключают поддержку Integer Overflow или Nonfinites.

Максимальное использование стека на приложение, в байтах в виде положительного целого числа. Установите предел, который ниже, чем доступный размер стека. В противном случае переполнение стека этапа выполнения может произойти. Компилятор C обнаруживает и сообщает о переполнениях стека.

Смотрите использование стекового пространства управления.

Язык, чтобы использовать в сгенерированном коде в виде 'C' или 'C++'. Если вы задаете C++, генератор кода переносит код С в .cpp файлы так, чтобы можно было использовать компилятор C++ и интерфейс с внешними приложениями C++. Это не генерирует классы C++.

Зависимость: если DeepLearningConfig установлен, codegen наборы TargetLang к C++.

Отобразиться ли, состояние генерации кода прогрессируют в командной строке MATLAB в виде одного из значений в этой таблице.

ЗначениеОписание
'Silent'

Если генерация кода успешно выполняется без предупреждения, все сообщения подавлены, включая то, когда вы генерируете отчет.

Предупреждающие сообщения и сообщения об ошибке отображены.

'Info'

Это значение является значением по умолчанию.

По сравнению с 'Silent' режим, если генерация кода успешно выполняется, эти дополнительные сообщения, отображен:

  • Code generation successful

  • Соединитесь со сгенерированным отчетом, если любой

'Verbose'

В дополнение к сообщениям, показанным в 'Info' режим, состояние генерации кода и целевые логарифмические сообщения сборки отображены.

Примеры

свернуть все

Запишите функцию MATLAB, от которой можно сгенерировать код. Этот пример использует функцию myadd это возвращает сумму его входных параметров.

function c = myadd(a,b)
c = a + b;
end

Создайте объект настройки для генерации MEX-функции.

cfg = coder.config('mex');

Измените значения свойств, для которых вы не хотите использовать значения по умолчанию. Например, включите своевременную (JIT) компиляцию.

cfg.EnableJIT = true;

Сгенерируйте код при помощи codegen. Передайте объект настройки codegen при помощи -config опция. Укажите, что входные параметры являются скаляром дважды.

codegen myadd -config cfg -args {1 1} -report

Альтернативная функциональность

Чтобы использовать значения параметра конфигурации по умолчанию для генерации MEX-функции, вместо того, чтобы создать объект настройки, можно вызвать codegen не задавая настройку возражают или с -config:mex опция.

Вопросы совместимости

развернуть все

Изменение поведения в будущем релизе

Введенный в R2011a