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





Да, вполне возможно. Хотя я закончил тем, что использовал интерфейс C и вызвал его, используя DLL смешанного режима (и получил C# для вызова этого ... но это было потому, что я также взаимодействовал с другим кодом C). Это довольно просто. На компьютерах, на которых вы хотите запустить свою программу, вам необходимо установить Matlab Runtime MCRInstaller.exe.
изменить: удалена неработающая ссылка
Если вы готовы потратить деньги, это может быть то, что вам нужно:
http://www.mathworks.com/products/netbuilder/
Он может генерировать оболочки для кода Matlab, которые позволяют вызывать его как из .NET, так и из COM.
Но будь осторожен. Ни один достойный рэпер не хотел бы, чтобы его называли так или иначе, когда он играет в середине песни.
Начиная с выпуска 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:
Вы также можете использовать MATLAB Builder NE для включения m-кода в сборки .NET.
http://www.mathworks.com/products/netbuilder/
Из всех вариантов это последнее, что я пробовал, и то, чем я закончил. С точки зрения Mathworks, это наиболее поддерживаемый и документированный сценарий. Имейте в виду, что 32-битные или 64-битные версии Matlab могут размещать только 32-битные или 64-битные внутрипроцессные COM-серверы соответственно.
Первая ссылка не работает.
Да, мне это удалось, и в основном это было безболезненно.
Вам нужно будет скомпилировать свой код MATLAB для .NET (как описано в предыдущих ответах), запустить установщик MCR, указать MWArray.dll и соответствующую кодовую dll в своем проекте .NET и начать.
Единственным раздражением было приведение (а иногда и множественное приведение!), Которое интерфейс навязывает вам (используя явные в операторах приведения)
В предварительном выпуске R2009a вы можете вызывать сборки .net из MATLAB.
Я не уверен, насколько это применимо к вам, но попробуйте изучить исполняемые файлы Matlab или MEX В принципе, действительно легко написать программу на C или FORTRAN, включить несколько библиотек и функций, а затем вы можете использовать функцию C или FORTRAN в Matlab
Существует бесплатная .NET-оболочка с открытым исходным кодом для Matlab, и это очень просто: http://www.codeproject.com/KB/dotnet/matlabeng.aspx
Я использую это.
Выглядит неплохо, но я скупой, скупой студент.