#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 в остальной части вашего кода.