Вопрос

После того, как вы заглянули в Интернет, похоже, что можно взаимодействовать между C # и Matlab. Мне интересно, имел ли кто-нибудь успех с этим и что они сделали для этого. Если возможно, как-нибудь вытащить его без использования COM. Спасибо за ваше время.

Это было полезно?

Решение

Да, вполне возможно. Хотя в итоге я использовал интерфейс C и обратился к нему с помощью DLL смешанного режима (и получил C # для вызова этого ... но это было потому, что я также взаимодействовал с некоторым другим кодом C). Это довольно просто. На компьютерах, на которых вы хотите запустить свою программу, вам нужно установить Matlab Runtime MCRInstaller.exe.

изменить: удалена неработающая ссылка

Другие советы

Начиная с выпуска MATLAB для R2009a, к объектам .NET можно получить доступ из MATLAB:

http://www.mathworks.com/help/techdoc/matlab_external/ brpb5k6.html

В более старых версиях MATLAB доступ к объектам .NET из MATLAB можно получить с помощью CCW:

http: //www.mathworks. ком / поддержка / решение / данные / 1-5U8HND.html? решение = 1-5U8HND

и движок MATLAB из .NET:

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/matlab_external/f135590.html#f135616

Вы также можете использовать MATLAB Builder NE для переноса m-кода в сборки .NET.

http://www.mathworks.com/products/netbuilder/

Да, мне удалось это сделать, и это было в основном безболезненно.

Вам нужно будет скомпилировать код MATLAB для .NET (как описано в предыдущих ответах), запустить установщик MCR, ссылаться на MWArray.dll и скомпилированный код dll в вашем проекте .NET - и все готово.

Единственное раздражение было приведение (и иногда несколько приведений!), что интерфейс заставляет вас (используя явное в операторах приведение)

Существует бесплатная оболочка .NET с открытым исходным кодом для Matlab, и она очень проста: http://www.codeproject.com/KB/dotnet/matlabeng.aspx

Я использую это.

В предварительном выпуске R2009a вы можете вызывать сборки .net из MATLAB.

Я не уверен, насколько это относится к вам, но попробуйте посмотреть исполняемые файлы Matlab или MEX По сути, действительно легко написать программу на C или FORTRAN, включить несколько библиотек и функций, а затем вы можете использовать свою функцию C или FORTRAN в matlab

Если вы готовы потратить деньги, это может быть то, что вам нужно:

http://www.mathworks.com/products/netbuilder/

Он может генерировать оболочки для кода Matlab, которые позволяют вызывать его как из .NET, так и из COM.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top