Код Matlab в .mex с использованием пакета кода - PullRequest
1 голос
/ 03 января 2012

Я хотел бы оптимизировать функцию, написанную на Matlab, путем преобразования кода в C \ C ++. Результат должен вызываться изнутри matlab, так как он представляет собой небольшую часть большего кода matlab.

Например, будет работать преобразование моей функции в код на C, заключенный в файл .mex. Я слышал, что пакет Matlab Coder может помочь с этим.

Поскольку я не знаком с этим пакетом, какой самый быстрый способ достичь этого?

1 Ответ

2 голосов
/ 03 января 2012

Если у вас есть лицензия на MATLAB Coder, то да, это правильный пакет для использования.Функция, которую вы ищете: codegen.Существуют ограничения на то, что можно использовать при генерации кода: чтобы увидеть, соответствует ли ваша функция этим ограничениям, добавьте тег %#codegen в начало вашей функции, как показано ниже

function foo(bar) %#codegen
    <your code here>

, и откройте файл функциив редакторе MATLAB.Тег указывает редактору проверить, соответствует ли код правилам генерации кода.Как только редактор покажет, что ваш код соответствует этим правилам, генерация mex-файла может быть такой же простой, как

>> codegen foo

, которая создаст mex-файл, foo_mex в текущей папке.Для вашей конкретной функции вам может понадобиться использовать некоторые из необязательных аргументов для codegen для правильной генерации mex-файла.

...