Вызов функции MATLAB из C#
Я разработал функцию MATLAB, и я ищу способ вызвать эту функцию из другого приложения c# и передать ему некоторые параметры и получить результаты в программе c#.
Я слышал, что я могу использовать Динамический Обмен Данными (DDE) или COM-объекты, но могу ли я это сделать?
3 ответов
есть хороший пример в MATLAB Central.
Он показывает три способа, как общаться с MATLAB:
- COM
- MATLAB .NET Bulider
- компилятор 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, но с другой стороны, выполнение довольно дорого.