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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
20
0
22 067
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

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

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

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

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

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

Выглядит неплохо, но я скупой, скупой студент.

smaclell 12.01.2009 06:51

Но будь осторожен. Ни один достойный рэпер не хотел бы, чтобы его называли так или иначе, когда он играет в середине песни.

Frederick The Fool 12.01.2009 06:55

Начиная с выпуска 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/

Из всех вариантов это последнее, что я пробовал, и то, чем я закончил. С точки зрения Mathworks, это наиболее поддерживаемый и документированный сценарий. Имейте в виду, что 32-битные или 64-битные версии Matlab могут размещать только 32-битные или 64-битные внутрипроцессные COM-серверы соответственно.

David Cuccia 24.08.2010 10:34

Первая ссылка не работает.

Drew Noakes 19.09.2013 15:03

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

Вам нужно будет скомпилировать свой код 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

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

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