Вызов функции MATLAB из C#

Я разработал функцию MATLAB, и я ищу способ вызвать эту функцию из другого приложения c# и передать ему некоторые параметры и получить результаты в программе c#.

Я слышал, что я могу использовать Динамический Обмен Данными (DDE) или COM-объекты, но могу ли я это сделать?

3 ответов


есть хороший пример в MATLAB Central.

Он показывает три способа, как общаться с MATLAB:

  1. COM
  2. MATLAB .NET Bulider
  3. компилятор MATLAB

COM (у меня нет никакого опыта работы с ним)

минусы: MATLAB требуется установить на целевой компьютер.

MATLAB .NET builder компилирует Код MATLAB для сборки .NET, и вы можете использовать его напрямую.

плюсы: MATLAB не требуется устанавливать на целевой компьютер

минусы: это дорого

компилятор MATLAB компилирует код MATLAB в библиотеку C / C++ или EXE-файл. Вы можете использовать его через P / Invoke.

плюсы: MATLAB не требуется устанавливать на целевой компьютер

минусы: это дорого, много P/Invoke.


есть третий вариант: представители. Запуск MATLAB - > load .NET assembly - > execute .NET function с дескриптором делегата для функции MATLAB.


есть отличный пример на этом сайте настройки все. Вы можете использовать инструмент развертывания MATLAB .NET.

вам нужно

  • установить MCR (среда выполнения компилятора Matlab).
  • развертывание функции Matlab в сборке .NET с помощью Matlab Deploy Инструмент. Это создаст а .DLL-файл.
  • добавить .ссылка dll внутри вашего проекта .NET.
  • добавить ссылку на MATLAB.NET.

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