Параметры конфигурации для генерации функции MEX из кода MATLAB
A coder.MexCodeConfig объект содержит параметры конфигурации, которые codegen используется при генерации функции MEX. Передать объект в codegen с помощью функции -config вариант.
cfg = coder.config('mex') создает coder.MexCodeConfig объект.
cfg = coder.config создает coder.MexCodeConfig объект.
CodeFormattingTool - Инструмент форматирования для созданного кода'Auto' (по умолчанию) | 'Clang-format' | 'MathWorks'Параметры форматирования кода для созданного кода, указанные как одно из значений в таблице.
| Стоимость | Описание |
|---|---|
'Clang-format' | Генератор кода форматирует сгенерированный код в соответствии с |
'Auto' | Использует внутреннюю эвристику для определения, имеет ли созданный код формат Чтобы определить, отформатирован ли сгенерированный код |
'MathWorks' | Вызывает возврат генератора кода к инструменту форматирования MathWorks. |
CompileTimeRecursionLimit - Максимальное количество специализаций функций для рекурсии во время компиляцииМаксимальное число специализаций функций для рекурсии во время компиляции, указанное как положительное целое число. Чтобы запретить рекурсию в коде MATLAB ®, установитеCompileTimeRecursionLimit в 0. Предел времени компиляции по умолчанию достаточно велик для большинства рекурсивных функций, требующих такого типа рекурсии. Если не удалось создать код из-за предела рекурсии времени компиляции и требуется рекурсия времени компиляции, попробуйте увеличить предел. Либо измените код MATLAB таким образом, чтобы генератор кода использовал рекурсию во время выполнения. См. раздел Достигнут предел рекурсии во время компиляции.
ConstantFoldingTimeout - Максимальное количество инструкций, выполняемых папкой константМаксимальное количество инструкций, выполняемых в постоянной папке. В некоторых ситуациях создание кода требует, чтобы конкретные команды были постоянными. Если постоянное сворачивание прекращается до того, как эти команды будут постоянно свернуты, создание кода завершается неудачей. В этом случае увеличить значение ConstantFoldingTimeout.
См. раздел Оптимизация кодера MATLAB в разделе Сгенерированный код.
ConstantInputs - Режим постоянной проверки ввода'CheckValues' (по умолчанию) | 'IgnoreValues' | 'Remove'Режим постоянной проверки ввода, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'CheckValues' |
Это значение является значением по умолчанию. При вызове функции MEX проверяется, что значение, указанное для постоянного входного аргумента, является значением, указанным во время генерации кода. Функцию MEX и исходную функцию MATLAB можно вызвать с одинаковыми аргументами. Поэтому для обеих функций можно использовать один и тот же тестовый файл. Проверка значений может замедлить выполнение функции MEX. |
'IgnoreValues' |
При вызове функции MEX она игнорирует значение, обеспечиваемое для постоянного входного аргумента. Используется значение, указанное во время генерации кода. Можно использовать один и тот же тестовый файл без дополнительных затрат на проверку значений постоянных аргументов. |
'Remove' |
Генератор кода удаляет постоянные входные аргументы из сигнатуры функции MEX. При вызове функции MEX значение для постоянного входного аргумента не указывается. Этот параметр обеспечивает обратную совместимость. |
См. раздел Постоянная проверка ввода в функциях MEX.
CppPackagesToNamespaces - Создание пространств имен C++ для пакетов MATLABtrue (по умолчанию) | falseНужно ли создавать пространства имен C++ для пакетов в коде MATLAB, указанном как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true | Это значение является значением по умолчанию. Генератор кода создает пространства имен C++ для пакетов в коде MATLAB. См. раздел Организация сгенерированного кода C++ в пространства имен. |
false | Генератор кода не создает пространства имен C++ для пакетов в коде MATLAB. |
Зависимость:
Настройка TargetLang кому 'C++' включает этот параметр.
Типы данных: logical
CppNamespace - Имя пространства имен для созданного кода C++'' (по умолчанию) | символьный векторПространство имен для созданного кода C++. Генератор кода не создает код в пространстве имен, если не указан непустой символьный вектор.
См. раздел Организация сгенерированного кода C++ в пространства имен.
Зависимость:
Настройка TargetLang кому 'C++' включает этот параметр.
CppNamespaceForMathworksCode - Поместить код C++, созданный для кода MathWorks, в отдельное пространство имен'coder' (по умолчанию) | символьный векторПространство имен для кода C++, созданного для кода MathWorks. Если это свойство указано как пустой символьный вектор, генератор кода не создает такое пространство имен.
См. раздел Организация сгенерированного кода C++ в пространства имен.
Зависимость:
Настройка TargetLang кому 'C++' включает этот параметр.
Типы данных: char
CppPreserveClasses - Создание классов C++ для классов MATLABtrue (по умолчанию) | falseСледует ли создавать классы C++ или структуры стилей C для классов MATLAB, указанных как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true | Это значение является значением по умолчанию. Генератор кода создает классы C++ для классов MATLAB. См. раздел Создание классов C++ для классов MATLAB. |
false | Генератор кода создает структуры стилей C для классов MATLAB. |
Зависимость:
Настройка TargetLang кому 'C++' включает этот параметр.
Типы данных: logical
CustomHeaderCode - Пользовательский код, отображаемый в верхней части созданных файлов заголовков C/C + +Пользовательский код, который отображается в верхней части каждого файла заголовка C/C + +, созданного из кода MATLAB, за исключениемrtwtypes.h и rtwhalf.h, задается как символьный вектор.
CustomInclude - Включить папки для добавления, чтобы включить путь для компиляции созданного кодаВключить папки для добавления к пути включения при компиляции созданного кода. Укажите список папок включения в качестве строкового массива, массива ячеек символьного вектора или символьного вектора.
Несколько имен папок, указанных как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Строковый массив | Строковый массив в |
| Массив ячеек символьных векторов | Массив ячеек символьных векторов в |
| Символьный вектор | Отдельные папки включения по Примечание Указание нескольких записей в объектах конфигурации кода с использованием символьных векторов будет удалено в следующей версии. Используйте строковый массив и массив ячеек символьного вектора. Дополнительные сведения см. в разделе Вопросы совместимости. |
CustomInitializer - Пользовательский код для включения в созданную функцию инициализацииПользовательский код для включения в создаваемую функцию инициализации, заданный как символьный вектор.
CustomLibrary - Статические файлы библиотеки для связи с сгенерированным кодомФайлы статической библиотеки для связи с сгенерированным кодом, указанным как строковый массив, массив ячеек символьного вектора или символьный вектор.
Несколько статических имен файлов библиотек, указанных как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Строковый массив | Строковый массив в |
| Массив ячеек символьных векторов | Массив ячеек символьных векторов в |
| Символьный вектор | Разделять имена файлов статической библиотеки на Примечание Указание нескольких записей в объектах конфигурации кода с использованием символьных векторов будет удалено в следующей версии. Используйте строковый массив и массив ячеек символьного вектора. Дополнительные сведения см. в разделе Вопросы совместимости. |
CustomSource - Исходные файлы для компиляции и связи с сгенерированным кодомИсходные файлы для компиляции и связи с сгенерированным кодом, указанным как строковый массив, массив ячеек символьного вектора или символьный вектор.
Процесс построения выполняет поиск исходных файлов сначала в текущей папке, а затем в папках включения, указанных в CustomInclude. Если исходные файлы с одинаковым именем находятся в нескольких папках на пути поиска, процесс построения может использовать файл, отличный от указанного.
Предположим, что вы указали foo.cpp в качестве исходного файла. Если foo.c и foo.cpp находятся в пути поиска, вы не можете быть уверены, использует ли процесс построения foo.c или foo.cpp.
Несколько имен исходных файлов, указанных как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Строковый массив | Строковый массив в |
| Массив ячеек символьных векторов | Массив ячеек символьных векторов в |
| Символьный вектор | Разделять имена исходных файлов по Примечание Указание нескольких записей в объектах конфигурации кода с использованием символьных векторов будет удалено в следующей версии. Используйте строковый массив и массив ячеек символьного вектора. Дополнительные сведения см. в разделе Вопросы совместимости. |
CustomSourceCode - Код, отображаемый в верхней части сгенерированного .c или .cpp файлыУкажите код, который будет отображаться рядом с верхней частью каждого созданного .c или .cpp файл (за исключением rtwhalf.c или rtwhalf.cpp), вне любой функции. Укажите код в качестве символьного вектора.
Не указывайте определение статической функции C.
CustomTerminator - Код, который появляется в созданной функции завершения Код, отображаемый в сгенерированной функции завершения, определяемый как символьный вектор.
DeepLearningConfig - Объект конфигурации для создания кода глубокого обученияcoder.MklDNNConfig объектОбъект конфигурации для создания кода для сетей глубокого обучения, указанный как coder.MklDNNConfig объект.
A coder.MklDNNConfig содержит параметры, специфичные для генерации кода C++ для глубокого обучения с помощью Intel ® MKL-DNN. Создание coder.MklDNNConfig объект, использование coder.DeepLearningConfig. Например:
cfg = coder.config('mex'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');
Для создания кода для сетей глубокого обучения требуется пакет поддержки Deep Learning Toolbox™ и MATLAB Coder™ Interface for Deep Learning Libraries.
См. раздел Создание кода для сетей глубокого обучения с MKL-DNN.
Примечание
Генерация кода MEX не поддерживается для глубокого обучения с помощью вычислительной библиотеки ARM ®.
Зависимость: Если DeepLearningConfig установлен, codegen наборы TargetLang кому C++.
DynamicMemoryAllocation - Режим динамического выделения памяти'Threshold' (по умолчанию) | 'AllVariableSizeArrays' | 'Off'Динамический режим выделения памяти, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'Threshold' |
Это значение является значением по умолчанию. Генератор кода динамически выделяет память в куче для массивов переменного размера, размер которых (в байтах) больше или равен |
'AllVariableSizeArrays' | Генератор кода динамически распределяет память для всех массивов переменного размера в куче. |
'Off' |
Генератор кода статически распределяет память для массивов переменного размера в стеке. |
Неограниченные массивы переменного размера требуют динамического выделения памяти.
Зависимости:
EnableVariableSizing включает этот параметр.
Установка этого параметра DynamicMemoryAllocation кому 'Threshold' включает DynamicMemoryAllocationThreshold параметр.
См. раздел Создание кода для данных переменного размера.
DynamicMemoryAllocationInterface - Динамически выделенный массив в сгенерированном функциональном интерфейсе'Auto' (по умолчанию) | 'C' | 'C++'Реализация динамически выделенного массива на интерфейсе сгенерированной функции C/C + +, указанной как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'Auto' | Это значение по умолчанию. Если установить |
'C' | Созданный код использует стиль C |
'C++' | Если установить Созданный код использует |
Зависимость:
EnableVariableSizing включает этот параметр.
DynamicMemoryAllocationThreshold - Пороговое значение размера для динамического выделения памяти массивам переменного размера65536 (по умолчанию) | положительное целое числоПорог размера для динамического выделения памяти массивам переменного размера, заданный как положительное целое число. Генератор кода использует динамическое выделение памяти для массивов переменного размера, размер которых (в байтах) больше или равен порогу.
Зависимость:
Настройка DynamicMemoryAllocation кому 'Threshold' включает этот параметр.
См. раздел Создание кода для данных переменного размера.
EnableAutoParallelization - Автоматическое распараллеливание for петлиfalse (по умолчанию) | trueАвтоматическое распараллеливание for петли, как указано в качестве одного из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false | Это значение является значением по умолчанию. Генератор кода не выполняет автоматическое распараллеливание |
true | Генератор кода автоматически распараллеливает |
Типы данных: logical
EchoExpressions - Выражение перекликаетсяtrue
(по умолчанию) | falseВыражение, эхо, указанное как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Функция MEX отображает выходные данные операторов, которые не заканчиваются точкой с запятой. |
false |
Функция MEX не отображает выходные данные операторов, которые не заканчиваются точкой с запятой. |
Это свойство не применяется к общим функциям визуализации, таким как disp, plot, или figure когда они называются как внешняя функция. Функции MEX отображают выходные данные этих функций независимо от наличия точки с запятой или значения EchoExpressions.
EnableAutoExtrinsicCalls - Автоматические вызовы внешних функцийtrue (по умолчанию) | falseАвтоматические вызовы внешних функций, указанные как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Генератор кода рассматривает некоторые общие функции визуализации как внешние функции. Эти функции не должны объявляться как внешние с помощью |
false | Генератор кода не рассматривает общие функции визуализации как внешние функции, если только вы не объявите их как внешние с помощью coder.extrinsic. |
Некоторые общие функции визуализации plot, disp, и figure. См. раздел Использование механизма MATLAB для выполнения вызова функции в сгенерированном коде.
EnableDebugging - Режим отладки компилятора Cfalse (по умолчанию) | trueРежим отладки компилятора C, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false |
Это значение является значением по умолчанию. Генератор кода не включает режим отладки компилятора Си. |
true |
Генератор кода включает режим отладки компилятора Си. Если включен режим отладки, компилятор Си не оптимизирует код. Компиляция выполняется быстрее, но выполнение - медленнее. |
EnableJIT - Режим компиляции JITfalse (по умолчанию) | trueРежим компиляции JIT, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false |
Это значение является значением по умолчанию. Генератор кода создает функцию C/C + + MEX, генерируя и компилируя код C/C + +. |
true |
Генератор кода использует технологию компиляции JIT для генерации функции MEX. Генератор кода создает функцию JIT MEX, которая содержит абстрактное представление кода MATLAB. При запуске функции JIT MEX MATLAB генерирует исполняемый код в памяти. |
Для ускорения создания функций MEX установите EnableJIT кому true.
Компиляция JIT несовместима с определенными функциями и параметрами генерации кода, такими как пользовательский код или использование библиотеки OpenMP. Если вы указываете компиляцию JIT и генератор кода не может ее использовать, он генерирует функцию C/C + + MEX с предупреждением. ЕслиEnableJIT и EnableOpenMP являются true, и ваш код использует parfor, генератор кода использует компиляцию JIT и обрабатывает parfor-закольцовывает как for-контуры.
См. раздел Ускорение генерации MEX с помощью JIT-компиляции.
EnableMemcpy — memcpy оптимизацияtrue (по умолчанию) | false
memcpy оптимизация, указанная как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Если возможно, генератор кода использует |
false |
Генератор кода не использует |
EnableMexProfiling - КИПиА для профилированияfalse (по умолчанию) | trueВключение профилирования сгенерированной функции MEX, указанной как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false | Это значение является значением по умолчанию. Генератор кода не включает инструментарий для профилирования в создаваемую функцию MEX. |
true | Генератор кода включает в себя инструментарий для профилирования в сгенерированной функции MEX. Затем для профилирования MEX можно использовать профилировщик MATLAB. См. раздел Функции профиля MEX с помощью профилировщика MATLAB. |
EnableOpenMP - Параллелизация parfor- петлиtrue (по умолчанию) | falseПараллелизация parfor-циклы, указанные как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Если возможно, генератор кода использует библиотеку OpenMP для создания итераций цикла, которые выполняются параллельно. |
false |
Генератор кода обрабатывает |
Посмотрите parfor.
Использование библиотеки OpenMP несовместимо с компиляцией JIT. Если EnableJIT и EnableOpenMP являются true, генератор кода использует компиляцию JIT и обрабатывает parfor-закольцовывает как for-контуры.
EnableRuntimeRecursion - Поддержка рекурсии во время выполненияtrue (по умолчанию) | falseПоддержка рекурсии во время выполнения, указанная как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Рекурсивные функции разрешены в сгенерированном коде. |
false |
Рекурсивные функции не допускаются в созданном коде. |
Некоторые стандарты кодирования, такие как MISRA ®, не допускают рекурсию. Чтобы увеличить вероятность создания кода, соответствующего MISRA C ®, установитеEnableRuntimeRecursion кому false.
Если код MATLAB требует рекурсии во время выполнения и EnableRuntimeRecursion является false, не удалось создать код.
См. раздел Создание кода рекурсивных функций.
EnableVariableSizing - Поддержка массива переменного размераtrue (по умолчанию) | falseПоддержка массива переменного размера, указанного как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Массивы переменного размера разрешены для генерации кода. |
false |
Массивы переменного размера не разрешены для создания кода. |
Зависимость:
Позволяет Dynamic memory allocation.
См. раздел Создание кода для массивов переменного размера.
ExtrinsicCalls - Поддержка вызовов внешних функцийtrue (по умолчанию) | falseПоддержка вызова внешней функции, указанная как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Для внешней функции генератор кода создает вызов функции MATLAB. Генератор кода не генерирует внутренний код для функции. |
false |
Генератор кода игнорирует внешнюю функцию. Он не генерирует код для вызова функции MATLAB. Если внешняя функция влияет на выход функции MATLAB, генератор кода выдает ошибку компиляции. Если установить |
Значение ExtrinsicCalls влияет на то, как функция MEX генерирует случайные числа для rand, randi, и randn. Если ExtrinsicCalls является trueфункция MEX использует поток глобальных случайных чисел MATLAB для генерации случайных чисел. В противном случае функция MEX использует автономный генератор случайных чисел.
См. раздел Использование механизма MATLAB для выполнения вызова функции в сгенерированном коде.
FilePartitionMethod - Режим секционирования файлов'MapMFileToCFile' (по умолчанию) | 'SingleFile'Режим секционирования файлов указан как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'MapMFileToCFile' |
Это значение является значением по умолчанию. Генератор кода создает отдельные файлы C/C + + для каждого файла языка MATLAB. |
'SingleFile' | Генератор кода создает один файл для функций C/C + +, которые сопоставляются с функциями точки входа MATLAB. Генератор кода создает отдельные файлы C/C + + для служебных функций. |
См. раздел Как генерируется код разделов кодера MATLAB.
GenCodeOnly - Создание только исходного кодаfalse (по умолчанию) | trueСоздание только исходного кода, указанного как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false |
Это значение является значением по умолчанию. Генератор кода создает исходный код C/C + + и создает объектный код. |
true |
Генератор кода создает исходный код C/C + +, но не вызывает команду make или код объекта построения. При итерации между изменением кода MATLAB и созданием кода C/C + + только создание кода может сэкономить время. |
GenerateComments - Комментарии в сгенерированном коде true (по умолчанию) | falseКомментарии в сгенерированном коде, указанном как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Генератор кода помещает комментарии в созданный код. |
false | Генератор кода не помещает комментарии в созданный код. |
GenerateReport - Отчет о создании кодаfalse (по умолчанию) | trueОтчет о создании кода, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false |
Это значение является значением по умолчанию. Генератор кода создает отчет только в случае появления сообщений об ошибках или предупреждений, а также при установке |
true | Генератор кода создает отчет о создании кода. |
GlobalDataSyncMethod - Режим глобальной синхронизации данных'SyncAlways' (по умолчанию) | 'SyncAtEntryAndExits' | 'NoSync'Режим глобальной синхронизации данных, указанный как одно из значений в этой таблице.
| Стоимость | Описание глобальных данных | Описание постоянных глобальных данных |
|---|---|---|
|
|
Это значение является значением по умолчанию. Синхронизация глобальных данных при вводе и выходе функции MEX и для внешних вызовов для обеспечения максимальной согласованности между MATLAB и созданной функцией MEX. Чтобы повысить производительность, если внешние вызовы не изменяют глобальные данные, используйте эту опцию с |
Проверка непротиворечивости постоянных глобальных данных при вводе функции MEX и после внешних вызовов. Если значения глобальных данных в глобальной рабочей области MATLAB несовместимы с глобальными значениями констант времени компиляции в функции MEX, функция MEX завершается ошибкой. Используйте |
|
|
Синхронизация глобальных данных только при вводе и выходе функции MEX. Чтобы максимизировать производительность, если только несколько внешних вызовов изменяют глобальные данные, используйте эту опцию с |
Проверка постоянных глобальных данных только при вводе функции MEX. Если значения глобальных данных в глобальной рабочей области MATLAB несовместимы с глобальными значениями констант времени компиляции в функции MEX, функция MEX завершается ошибкой. Используйте |
|
|
Отключает синхронизацию. Перед отключением синхронизации убедитесь, что функция MEX не взаимодействует с глобальными данными MATLAB. В противном случае могут возникнуть несоответствия между MATLAB и функцией MEX. |
Отключает проверки непротиворечивости. |
См. раздел Создание кода для глобальных данных.
HighlightPotentialRowMajorIssues - Возможные основные проблемы с компоновкой строкtrue (по умолчанию) | falseОтображение потенциальных основных проблем с эффективностью компоновки строк, указанных как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
В отчете о создании кода отображаются потенциальные проблемы с эффективностью, связанные с компоновкой основных строк. (Это значение является значением по умолчанию.) |
false | В отчете о создании кода не отображаются проблемы, связанные с компоновкой массива. |
См. раздел Разработка кода для компоновки основного массива строк.
InitFltsAndDblsToZero - Назначение плавающего и двойного нуля с помощью memset true (по умолчанию) | falseНазначение плавающего и двойного нуля с memset, указано в качестве одного из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Если возможно, генератор кода использует |
false |
Генератор кода не использует |
InlineBetweenMathWorksFunctions - Контроль связи между функциями MathWorks'Speed' (по умолчанию) | 'Always' | 'Readability' | 'Never'Встроенное поведение на всех узлах вызова, где MathWorks вызывает другую функцию MathWorks, заданную как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'Speed' | Это значение является значением по умолчанию. Использует внутреннюю эвристику для определения необходимости включения в узел вызова. Этот параметр обычно приводит к высокооптимизированному коду. |
'Always' | Всегда выполняет встраивание на узле обработки вызовов. |
'Readability' | Практически никогда не выполняет встроенные вызовы функций, за исключением вызовов очень небольших функций. Сохраняет модульность кода, не жертвуя слишком большой скоростью, когда это возможно. В результате получается хорошо читаемый код. |
'Never' | Никогда не вставляет вызовы функций. Обеспечивает максимальную читаемость. Этот параметр может значительно снизить производительность созданного кода. |
Даже если выбрать 'Always' или 'Never' для установки, в некоторых случаях генератор кода может не строго следовать этой инструкции. Например, при наличии конфликта coder.inline('always') или coder.inline('never') директива, размещенная внутри тела функции, переопределяет эту опцию. Дополнительные сведения см. в разделе Взаимодействие между различными элементами управления вложением.
См. раздел Управление встроением для точной настройки производительности и читаемости сгенерированного кода.
InlineBetweenUserAndMathWorksFunctions - Управление наложением функций, написанных пользователем, на функции MathWorks'Speed' (по умолчанию) | 'Always' | 'Readability' | 'Never'Встроенное поведение на всех узлах вызова, где написанная функция вызывает функцию MathWorks, или функция MathWorks вызывает написанную функцию. Указано как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'Speed' | Это значение является значением по умолчанию. Использует внутреннюю эвристику для определения необходимости включения в узел вызова. Этот параметр обычно приводит к высокооптимизированному коду. |
'Always' | Всегда выполняет встраивание на узле обработки вызовов. |
'Readability' | Практически никогда не выполняет встроенные вызовы функций, за исключением вызовов очень небольших функций. Сохраняет модульность кода, не жертвуя слишком большой скоростью, когда это возможно. В результате получается хорошо читаемый код. |
'Never' | Никогда не вставляет вызовы функций. Обеспечивает максимальную читаемость. Этот параметр может значительно снизить производительность созданного кода. |
Даже если выбрать 'Always' или 'Never' для установки, в некоторых случаях генератор кода может не строго следовать этой инструкции. Например, при наличии конфликта coder.inline('always') или coder.inline('never') директива, размещенная внутри тела функции, переопределяет эту опцию. Дополнительные сведения см. в разделе Взаимодействие между различными элементами управления вложением.
См. раздел Управление встроением для точной настройки производительности и читаемости сгенерированного кода.
InlineBetweenUserFunctions - Управление вложением между записанными пользователем функциями'Speed' (по умолчанию) | 'Always' | 'Readability' | 'Never'Встроенное поведение на всех узлах вызова, где написанная функция вызывает другую записанную функцию, заданную как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'Speed' | Это значение является значением по умолчанию. Использует внутреннюю эвристику для определения необходимости включения в узел вызова. Этот параметр обычно приводит к высокооптимизированному коду. |
'Always' | Всегда выполняет встраивание на узле обработки вызовов. |
'Readability' | Практически никогда не выполняет встроенные вызовы функций, за исключением вызовов очень небольших функций. Сохраняет модульность кода, не жертвуя слишком большой скоростью, когда это возможно. В результате получается хорошо читаемый код. |
'Never' | Никогда не вставляет вызовы функций. Обеспечивает максимальную читаемость. Этот параметр может значительно снизить производительность созданного кода. |
Даже если выбрать 'Always' или 'Never' для установки, в некоторых случаях генератор кода может не строго следовать этой инструкции. Например, при наличии конфликта coder.inline('always') или coder.inline('never') директива, размещенная внутри тела функции, переопределяет эту опцию. Дополнительные сведения см. в разделе Взаимодействие между различными элементами управления вложением.
См. раздел Управление встроением для точной настройки производительности и читаемости сгенерированного кода.
IntegrityChecks - Проверка целостности памятиtrue (по умолчанию) | falseПроверка целостности памяти, указанная как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Созданный код обнаруживает нарушения целостности памяти и останавливает выполнение с помощью диагностического сообщения. |
false |
Созданный код не обнаруживает нарушений целостности памяти. Настройка |
См. раздел Контрольные проверки времени выполнения.
LaunchReport - Автоматическое открытие отчета о формировании кодаfalse (по умолчанию) | trueАвтоматическое открытие отчета о создании кода, указанного как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false |
Это значение является значением по умолчанию. Если возникают ошибки или предупреждения, или если |
true | Генератор кода создает и открывает отчет о создании кода. |
MATLABSourceComments - Включение исходного кода MATLAB в качестве комментариев в созданный код false (по умолчанию) | trueВключение исходного кода MATLAB в качестве комментариев в созданный код, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false |
Это значение является значением по умолчанию. Генератор кода не вставляет исходный код MATLAB в качестве комментариев в созданный код. Генератор кода не включает сигнатуру функции MATLAB в баннер функции. |
true | Генератор кода вставляет исходный код MATLAB в качестве комментариев в созданный код. Тег отслеживания непосредственно предшествует каждой строке исходного кода. Тег отслеживания помогает найти соответствующий исходный код MATLAB. См. раздел Трассировка сгенерированного кода C/C + + к исходному коду MATLAB. Генератор кода также включает сигнатуру функции MATLAB в баннер функции. |
Зависимость:
GenerateComments включает этот параметр.
См. раздел Трассировка сгенерированного кода C/C + + к исходному коду MATLAB.
MemcpyThreshold - Минимальный размер для memcpy или memset оптимизация Минимальный размер (в байтах) для оптимизации memcpy или memset, заданный как положительное целое число.
Чтобы оптимизировать сгенерированный код, копирующий последовательные элементы массива, генератор кода пытается заменить код на memcpy звоните. Чтобы оптимизировать сгенерированный код, который присваивает литеральную константу последовательным элементам массива, генератор кода пытается заменить код на memset звоните.
Число байтов - это количество элементов массива для копирования или назначения, умноженное на количество байтов, необходимых для типа данных C/C + +.
Если число элементов для копирования или назначения является переменным (не известно во время компиляции), генератор кода игнорирует MemcpyThreshold собственность.
См. раздел Оптимизация memcpy и оптимизация memset.
Name - Имя объекта'MexCodeConfig' (по умолчанию) | символьный векторИмя объекта, указанное как символьный вектор.
PostCodeGenCommand - Команда для настройки обработки построения'' (по умолчанию) | символьный векторКоманда для настройки обработки построения после создания функции MEX с помощью codegen, задается как символьный вектор.
См. раздел Настройка процесса построения.
PreserveArrayDimensions - N-мерная индексацияfalse (по умолчанию) | trueСоздание кода, использующего N-мерное индексирование, указанное как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false |
Создание кода, использующего одномерную индексацию. (Это значение является значением по умолчанию.) |
true | Создание кода, использующего N-мерную индексацию. |
См. раздел Создание кода, использующего N-мерное индексирование.
PreserveVariableNames - Имена переменных для сохранения в созданном коде'None' (по умолчанию) | 'UserNames' | 'All'Имена переменных для сохранения в созданном коде, указанные как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'None' |
Это значение является значением по умолчанию. Генератору кода не требуется сохранять имена переменных. Он может повторно использовать любые переменные, удовлетворяющие требованиям к повторному использованию переменных. Если в коде используются большие структуры или массивы, установка |
'UserNames' |
Генератор кода сохраняет имена, соответствующие переменным, определенным в коде MATLAB. Оно не заменяет имя переменной другим именем и не использует имя другой переменной. Чтобы улучшить удобочитаемость, установите Настройка |
'All' |
Сохранить все имена переменных. Это значение параметра отключает повторное использование переменной. Используйте его только для тестирования или отладки, а не для производственного кода. |
См. раздел Сохранение имен переменных в сгенерированном коде.
ReportInfoVarName - имя переменной, содержащей информацию отчета о формировании кода;'' (по умолчанию) | символьный векторИмя переменной, в которую экспортируется информация о создании кода, указанное как символьный вектор. Генератор кода создает эту переменную в базовой рабочей области MATLAB. Эта переменная содержит информацию о параметрах генерации кода, входных файлах, созданных файлах и сообщениях генерации кода.
См. раздел Программно и кодировщик информации о создании отчетов по коду доступа. Свойства EventInfo.
ReportPotentialDifferences - Отчетность о потенциальных различияхtrue (по умолчанию) | falseОтчет о потенциальных различиях, указанный как одно из значений в этой таблице:
| Стоимость | Описание |
|---|---|
true | Генератор кода сообщает о потенциальных различиях поведения между сгенерированным кодом и кодом MATLAB. Возможные различия перечислены на закладке отчета о создании кода. Разность потенциалов - это разница, которая возникает во время выполнения только при определенных условиях. |
false | Генератор кода не сообщает о потенциальных различиях. |
См. раздел Отчеты о потенциальных различиях.
ReservedNameArray - Имена, которые генератор кода не может использовать для функций или переменных'' (по умолчанию) | строковый массив | массив ячеек символьных векторов | символьный векторСписок имен, которые генератор кода не должен использовать для функций или переменных, указанных как строковые массивы, массивы ячеек символьных векторов или символьные векторы.
Несколько зарезервированных имен, указанных как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
| Массивы строк | Строковый массив в |
| Массив ячеек символьных векторов | Массив ячеек символьных векторов в |
| Векторы символов | Разделенный точкой с запятой список зарезервированных имен в Примечание Указание нескольких записей в объектах конфигурации кода с использованием символьных векторов будет удалено в следующей версии. Используйте строковый массив и массив ячеек символьного вектора. Дополнительные сведения см. в разделе Вопросы совместимости. |
ResponsivenessChecks - Проверки отзывчивостиtrue (по умолчанию) | falseПроверки быстродействия, указанные как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true |
Это значение является значением по умолчанию. Для остановки выполнения сгенерированной функции MEX можно использовать клавиши Ctrl + C. |
false |
Для завершения длительной работы функции MEX может потребоваться завершение MATLAB. |
См. раздел Контрольные проверки времени выполнения.
RowMajor - Компоновка основного массива строкfalse (по умолчанию) | trueСоздание кода, использующего макет основного массива строк, указанный как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
false |
Создание кода, использующего макет массива «основной столбец». (Это значение является значением по умолчанию.) |
true | Создание кода, использующего макет массива «строка-большая». |
См. раздел Создание кода, использующего макет главного массива строк.
SaturateOnIntegerOverflow - Поддержка переполнения целых чиселtrue (по умолчанию) | falseПоддержка переполнения целых чисел, указанная как одно из значений в этой таблице.
| Стоимость | Описание |
|---|---|
true | Это значение является значением по умолчанию. Генератор кода создает код для обработки переполнения целого числа. Переполнения насыщаются минимальным или максимальным значением, которое может представлять тип данных. |
false | Генератор кода не создает код для обработки переполнения целых чисел. Не устанавливать |
Этот параметр применяется только к встроенным целочисленным типам MATLAB. Он не применяется к двойным, одиночным или фиксированным типам данных.
См. раздел Отключение поддержки переполнения целых чисел или нефинитов.
StackUsageMax - Максимальное использование стека для каждого приложения200000 (по умолчанию) | положительное целое числоМаксимальное использование стека приложением в байтах, указанное как положительное целое число. Установите предел, который меньше доступного размера стека. В противном случае может произойти переполнение стека во время выполнения. Компилятор C обнаруживает переполнения стека и сообщает о них.
См. раздел Использование пространства в стеке управления.
TargetLang - Язык для использования в сгенерированном коде'C' (по умолчанию) | 'C++'Язык для использования в сгенерированном коде, указанный как 'C' или 'C++'. При указании C++ генератор кода переносит код C в файлы .cpp, чтобы можно было использовать компилятор C++ и интерфейс с внешними приложениями C++. Он не генерирует классы C++.
Зависимость: Если DeepLearningConfig установлен, codegen наборы TargetLang кому C++.
Verbosity - Отображение хода создания кода'Info' (по умолчанию) | 'Silent' | 'Verbose'Отображение состояния процесса создания кода в командной строке MATLAB, указанного в качестве одного из значений в этой таблице.
| Стоимость | Описание |
|---|---|
'Silent' | При успешном создании кода без предупреждения все сообщения подавляются, в том числе при создании отчета. Отображаются предупреждения и сообщения об ошибках. |
'Info' | Это значение является значением по умолчанию. По сравнению с
|
'Verbose' | В дополнение к сообщениям, показанным в |
Напишите функцию 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 вариант.
Изменение поведения в будущем выпуске
В следующем выпуске будет удалено несколько имен файлов, путей или зарезервированных имен в объектах конфигурации кода с использованием векторов символов или скаляров строк, имеющих разделители. Используйте строковые массивы и массив ячеек символьного вектора. Например, для включения нескольких имен папок можно использовать либо строковый массив в CustomInclude как cfg.CustomInclude = ["C:\Project","C:\Custom Files"]; или массив ячеек символьных векторов как cfg.CustomInclude = {'C:\Project','C:\Custom Files'}; чтобы включить путь для компиляции сгенерированного кода.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.