Interoperando entre Matlab e C #
-
10-07-2019 - |
Pergunta
Depois de espreitar em torno da internet, parece que é possível interoperabilidade entre C # e Matlab. Eu estou querendo saber se alguém já teve sucesso com ele eo que eles fizeram para fazê-lo. Se possível alguma forma puxá-lo sem o uso de COM. Obrigado pelo seu tempo.
Solução
Sim, perfeitamente possível. Embora eu acabei usando a interface C e pôr em que o uso de uma DLL de modo misto (e recebendo C # para pôr em que ... mas isso foi porque eu também estava interface com algum outro código C). É bastante simples. Em computadores onde você deseja executar o seu programa, você vai precisar instalar Matlab Runtime MCRInstaller.exe.
edit: removido ligação quebrada
Outras dicas
A partir da liberação R2009a de MATLAB, .NET objetos podem ser acessados ??a partir de MATLAB:
http://www.mathworks.com/help/techdoc/matlab_external/ brpb5k6.html
Em versões anteriores do MATLAB, é possível acessar objetos .NET de MATLAB usando CCW:
http: //www.mathworks. com / support / soluções / data / 1-5U8HND.html? solução = 1-5U8HND
eo motor MATLAB da NET:
Você também pode usar o MATLAB Builder NE para embrulhar m-código em .NET assembléias.
Sim, eu consegui fazer isso e foi principalmente indolor.
Você tem que compilar o código MATLAB para .NET (como explicado nas respostas penetrável), instalador MCR correr, referência MWArray.dll ea dll código compilado em seu projeto .NET e temos que ir.
O único incômodo foi o casting (e às vezes vários castings!) Que as forças de interface em você (usando explícita nos operadores elenco)
Há um invólucro livre e aberto .NET fonte para Matlab, e é muito simples: http://www.codeproject.com/KB/dotnet/matlabeng.aspx
Eu uso isso.
No R2009a pré-lançamento você pode chamar montagens .NET a partir MATLAB.
Eu não tenho certeza do quanto isso se aplica a você, mas tente olhar em executáveis ??Matlab ou MEX Basicamente, é muito fácil escrever um programa em C ou FORTRAN, incluir algumas bibliotecas e funções, e então você pode usá-lo C ou função Fortran em Matlab
Se você está disposto a gastar dinheiro este pode ser o que você precisa:
http://www.mathworks.com/products/netbuilder/
Pode gerar wrappers para código Matlab que permitem que ele seja chamado de ambos .NET e COM.