Pergunta

Desenvolvi uma função MATLAB e estou procurando uma maneira de chamar essa função de outro aplicativo C # e passar alguns parâmetros para ela e obter os resultados no programa C #.

Ouvi dizer que posso usar Dynamic Data Exchange (DDE) ou objetos COM, mas posso fazer isso?

Foi útil?

Solução

Há um bom exemplo no MATLAB Central .

Mostra três maneiras de se comunicar com o MATLAB :

  1. COM
  2. MATLAB .NET Bulider
  3. compilador MATLAB

COM (não tenho experiência com isso)

Contras: o MATLAB deve ser instalado no computador de destino.

O construtor MATLAB .NET compila seu código MATLAB para o conjunto .NET e você pode usá-lo diretamente.

Prós: o MATLAB não precisa ser instalado no computador de destino

Contras: é caro

Compilador MATLAB compila seu código MATLAB em uma biblioteca C / C ++ ou arquivo EXE. Você pode usá-lo por meio de P / Invoke .

Prós: o MATLAB não precisa ser instalado no computador de destino

Contras: é caro, muito P / Invoke.

Outras dicas

Há uma terceira opção: delegados .Iniciando o MATLAB -> carregar o conjunto .NET -> executar a função .NET com delegado identificador para uma função MATLAB.

Há um ótimo exemplo neste site sobre como configurar tudo.Você pode usar a ferramenta de implantação MATLAB .NET.

Você precisa

  • Instale o MCR (Matlab Compiler Runtime).
  • Implante sua função Matlab para .NET Assembly usando Matlab Deploy Ferramenta.Isso criará um arquivo .dll.
  • Adicione uma referência .dll dentro de seu projeto .NET.
  • Adicione referência ao MATLAB.NET.

A vantagem deste método é que a máquina de destino não requer a instalação do MATLAB, mas por outro lado, a execução é bastante cara.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top