как сгенерировать MEX из функции пакета в MATLAB?

#matlab #mex #matlab-coder

#matlab #mex #matlab-coder

Вопрос:

У меня следующая структура каталогов:

 main
    model
      run.m
    options
      opt.m
main.m
  

и так далее.

У меня есть вызываемая model функция в run каталоге, которая зависит от некоторых функций в options каталоге, так что мой main.m скрипт в каталоге main вызывает model.run() , а функция run вызывает некоторые options.opt() .

Я хочу сгенерировать MEX-файл model.run() , поэтому я запускаю coder из командной строки MATLAB, и на первом экране, где я ввожу имя функции для генерации кода model.run , программист просто отображает ошибку:

Этот файл затенен C:…. modelrun.m

Я уже пытался добавить main каталог в path, но это не сработало.

  • Возможно ли скомпилировать MEX для model.run() в этом сценарии?

Версия MATLAB: ‘9.4.0.813654 (R2018a)’

Ответ №1:

Генерация кода непосредственно из функции в пакете, к сожалению, не поддерживается в MATLAB Coder начиная с MATLAB R2019a. Мы сделали внутреннюю заметку о вашем запросе, чтобы в будущем рассмотреть возможность снятия этого ограничения.

Обходной путь прямо сейчас заключается в добавлении функции-оболочки вне пакета, который вызывает model.run , и использовании ее в качестве функции точки входа с помощью Coder. Затем вы могли бы переместить результирующий MEX-файл в свой model каталог, чтобы он model.run вызывал сгенерированный MEX в остальной части вашего кода.