Подтвердить что ты не робот

Взаимодействие между Matlab и С#

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

http://www.mathworks.com/support/solutions/data/1-5U8HND.html?solution=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/

Ответ 3

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

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

Единственное раздражение - это литье (а иногда и несколько отливок!), которое на вас оказывает интерфейс (с использованием явного в операторах трансляции)

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

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