2013-10-10 6 views
1

Моя основная цель - интегрировать код, написанный в matlab (.m) с другим приложением C#. я рассмотрел 2 варианта:Matlab Coder - Генерация EXE из .m файла

  1. Использование Matlab Builder NE
    • Плюсы: Используйте для использования!
    • Против: Нужна лицензия ($$), которой я до сих пор не владею. Требуется MCR, установленная на ПК конечного пользователя.
  2. Сформировать автономный файл EXE из .m файл
    • Плюсы: не нужно ничего, чтобы бежать.
    • Против: Жесткий для новичка в использовании. Не поддерживайте все функции.

До сих пор я пытаюсь сделать «доказательство концепции» вариант 2), но без успеха. Я даже не знаю, как начать мой вопрос; Я улучшу свой вопрос, как только я узнаю панели инструментов немного больше. Пожалуйста, сообщите мне, если вопрос не соответствует стандартам.

  1. Какая связь между Matlab Coder, Real-Time Workshop (RTW) и RTW Embedded Coder? Я уверен, что у меня есть оба лицензии RTW, но я не уверен, что у меня есть «Matlab Coder»
  2. Я пытаюсь использовать команду «emlc» для генерации EXE. Это правильная команда? Мне не удалось заставить его работать. Я правильно сгенерировал код C/C++, но EXE не сгенерирован (я уже настроил настройку MEX)
  3. Код C/C++, сгенерированный «emlc», можно импортировать в Visual Studio, чтобы скомпилировать и построить EXE? Это супер-легко?
  4. "Emlc" принадлежит к какой панели инструментов?
  5. Что означает% # codegen?
  6. Представьте, что у меня есть 2 функции (functionA, functionB) в файле .m. Представьте себе, что я смог генерировать EXE. Что было бы точкой входа для exe? Будет ли это functionA или functionB? Как определить тип данных?
+0

Если вы хотите сгенерировать exe из Matlab, exe понадобится время выполнения MATLAB, вот что вам следует искать в – Matt

+1

@Matt, только если вы используете компилятор MATLAB, а не MATLAB Coder – am304

ответ

3

MATLAB Coder - относительно новый продукт, который позволяет вам генерировать код C из MATLAB без Simulink. До этого вам понадобилось Simulink и Work-Workshop (даже если вы не использовали Simulink) для генерации кода C из MATLAB с использованием emlc. Когда MATLAB Coder был выпущен, Real-Time Workshop был переименован в Simulink Coder и Real-Time Workshop Embedded Coder в Embedded Coder. Разница между MATLAB/Simulink Coder и Embedded Coder заключается в том, что «базовые» продукты кодера позволяют генерировать функционально правильный код, но этот код не оптимизирован для работы в реальном времени или настраивается для соответствия определенным стандартам кодирования. Embedded Coder позволяет оптимизировать и настроить генерацию кода с помощью MATLAB и Simulink Coder. Если у вас была лицензия на RTW, вам была бы предоставлена ​​бесплатная лицензия MATLAB Coder, когда она была выпущена, поскольку MATLAB Coder является предварительным условием для Simulink Coder.

Я считаю, emlc относится к кодам MATLAB. Код, созданный MATLAB Coder, может быть импортирован и скомпилирован в Visual Studio. Я не знаю, насколько это просто на самом деле, но есть функция, называемая «Pack N Go», которая должна облегчить этот процесс, проверьте его. Также есть цель Visual Studio, но не уверен, что это в базе MATLAB Coder или вам нужен также встроенный кодер.

2

Ссылаясь на 6):

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

Смежные вопросы