Вызов внешней функции C/C + +
coder.ceval( выполняет внешнюю функцию C/C + +, заданную cfun_name)cfun_name. Определите cfun_name во внешнем исходном файле C/C + + или библиотеке. Предоставьте генератору кода файлы внешнего источника, библиотеки и заголовков.
coder.ceval( выполняет cfun_name,cfun_arguments)cfun_name с аргументами cfun_arguments. cfun_arguments является список , разделенный запятыми входных параметров в том порядке, в котором cfun_name требует.
По умолчанию, coder.ceval передает аргументы по значению в функцию C/C + + всякий раз, когда C/C + + поддерживает передачу аргументов по значению. Сделатьcoder.ceval передайте аргументы по ссылке, используйте конструкции coder.ref, coder.rref, и coder.wref. Если C/C + + не поддерживает передачу аргументов по значению, например, если аргумент является массивом,coder.ceval передает аргументы по ссылке. Если вы не используете coder.ref, coder.rref или coder.wrefкопия аргумента может появиться в сгенерированном коде для принудительного применения MATLAB® семантика для массивов.
coder.ceval( выполняет '-global',cfun_name)cfun_name и указывает, что cfun_name использует одну или несколько глобальных переменных MATLAB. Генератор кода может затем получить код, который согласуется с этим глобальным использованием переменной.
coder.ceval( выполняет '-global',cfun_name,cfun_arguments)cfun_name с аргументами cfun_arguments и указывает, что cfun_name использует одну или несколько глобальных переменных MATLAB.
coder.ceval( позволяет вызывать CUDA® Графический процессор '-gpudevicefcn',devicefun_name,devicefun_arguments)__device__ функции из ядер. '-gpudevicefcn' указывает на coder.ceval что целевая функция находится на устройстве GPU. devicefun_name - имя объекта __device__ функции и devicefun_arguments является список , разделенный запятыми входных параметров в том порядке, в котором devicefun_name требует. Для этой опции требуется продукт GPU Coder™.
coder.ceval( выполняет '-layout:rowMajor',cfun_name,cfun_arguments)cfun_name с аргументами cfun_arguments и передает данные, сохраненные в основном размещении. При вызове из функции, которая использует размещение основного столбца, генератор кода преобразует входы в размещение основной строки и преобразует выходы обратно в размещение основного столбца. Для более короткого синтаксиса используйте coder.ceval('-row',...).
coder.ceval( выполняет '-layout:columnMajor',cfun_name,cfun_arguments)cfun_name с аргументами cfun_arguments и передает данные, хранимые в размещении столбца. При вызове из функции, которая использует размещение основной строки, генератор кода преобразует входы в размещение основной строки и преобразует выходы обратно в размещение основной строки. Для более короткого синтаксиса используйте coder.ceval('-col',...).
coder.ceval( выполняет '-layout:any',cfun_name,cfun_arguments)cfun_name с аргументами cfun_arguments и передает данные с текущим размещением массива, даже когда размещения массива не совпадают. Генератор кода не преобразует размещение массива входных или выходных данных.
cfun_return = coder.ceval(___) выполняет cfun_name и возвращает одно скалярное значение, cfun_return, соответствующее значению, которое функция C/C + + возвращает в return оператор. Чтобы соответствовать C/C + +,coder.ceval может вернуть только скалярное значение. Он не может вернуть массив. Используйте эту опцию с любыми комбинациями входных аргументов в предыдущих синтаксисах.
Вы не можете использовать coder.ceval на функциях, которые вы объявляете внешними coder.extrinsic.
Когда компилятор LCC создает библиотеку, он добавляет начальное подчеркивание к именам функции библиотеки. Если компилятором для библиотеки был LCC, а ваш компилятор генерации кода - не LCC, необходимо добавить начальный символ подчеркивания в имя функции, например coder.ceval('_mylibfun'). Если компилятор для библиотеки не был LCC, вы не можете использовать LCC для генерации кода из кода MATLAB, который вызывает функции из этой библиотеки. Эти имена функции библиотеки не имеют начального подчеркивания, которое требуется компилятору LCC.
Если свойство имеет метод get, метод set, или validators, или является свойством System object™ с определенными атрибутами, то вы не можете передать свойство по ссылке на внешнюю функцию. Для некоторых свойств см. Раздел «Передача по ссылке» не поддерживается.
Для генерации кода, перед вызовом coder.cevalнеобходимо задать тип, размер и тип данных сложности значений возврата и выходных аргументов.
Подавать coder.ceval в функцию, которая принимает или возвращает переменные, которые не существуют в коде MATLAB, такие как указатели, FILE типы для файловых макросов ввода-вывода и C/C + +, используйте coder.opaque функция.
Использовать coder.ceval только в MATLAB для генерации кода. coder.ceval генерирует ошибку в нескомпилированном коде MATLAB. Чтобы определить, выполняется ли функция MATLAB в MATLAB, используйте coder.target. Если функция выполняется в MATLAB, вызовите версию MATLAB функции C/C + +.
codegen | coder.columnMajor | coder.ExternalDependency | coder.extrinsic | coder.opaque | coder.ref | coder.reservedName | coder.rowMajor | coder.rref | coder.target | coder.updateBuildInfo | coder.wref