Diretório do artigo
A operação de gravação única compartilhada, irmão mais velho de ignorar.
Fundo
bloggers pela primeira vez usando programação Matlab misturado com c #, acesso multilateral e tentar o sucesso final com c # para blogueiros chamada usar uma simples função sumfunc Matlab self-made;
processo
0 compilador A Matlab
O primeiro passo no portal
blogueiros após a conclusão do Matlab e C # primeiro passo misto para iniciar a biblioteca de vínculo dinâmico dll eo Matlab gerado c # programação.
1, a referência principal
Bloggers usar 一篇论文的两段具体操作阐述
e 传送门一和传送门二
conteúdo, gerar dll:
graças aos muitos excelente artigo Gangster blogger:
Portal chama de --visual studioC # MATLAB gerado DLL
Portal Dois -C # Matlab chamar uns aos outros
2, Matlab gerar a biblioteca de vínculo dinâmico dll
① em Matlab, blogueiros escreveu uma função simples adição, como segue:
function y = sumfunc(x1,x2)
y=x1+x2;
end
② comando de entrada na janela de comando Matlab:
setenv('MW_MINGW64_LOC','D:\TDM-GCC-64'),
③, em seguida, digite os comandos:
mex -setup
④, em seguida, digite o comando
deploytool
⑤, em seguida, abrir uma caixa de diálogo, selecioneLibrary Compiler
⑥ em seguida, salta para a caixa de diálogo seguinte:
⑦ conjunto
⑧ o conjunto blogger (imagem acima) para salvar o caminho a seguir, houve arquivos compactados sumfunc文件夹【有用】
e sumfunc.prj【没用】
:
ponto para abrir sumfunc文件夹【有用】
depois:
⑨ total de só precisa usar dois dll :
um mapa está no sumfunc.dll
, o outro é um caminho de instalação Matlab MWArray.dll
(porta de transferência)
D: \ matlab2019a \ toolbox \ dotnetbuilder \ bin \ win64 \ v4.0
Neste ponto, o segundo passo gerar dinâmica sucesso biblioteca de vínculo.
3, studio novos projetos e referências
① Newc#控制台应用.Net Framework
② adicionado 两个dll的引用
:
③ Na Program.cs文件的代码
porção para a adição de três linhas:
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
using sumfunc;
Até agora, visual studio c configuração # projeto de sucesso
4, write c # código
sumfunc.Class1 sum = new sumfunc.Class1();
MWArray[] argsout = new MWArray[1];
MWArray[] argsin = new MWArray[] { 2,3 };
sum.sumfunc(1, ref argsout, argsin); // 对于Class类型使用 ref,是为了保持引用的地址是一致的。
MWNumericArray mw = argsout[0] as MWNumericArray;
double[,] res = (double[,])mw.ToArray();
string str = res[0, 0].ToString("F2");
Console.WriteLine(res);
Console.WriteLine(str);
Console.ReadKey();
Excelente código blogger para explicar:
5, resolver bug
Bloggers encontrado após a execução de erro 未经处理的异常: System.TypeInitializationException
, depois de blogueiros para encontrar soluções para artigos blogger pendentes, está prestes a mudar Qualquer x86 CPU, resumidos na outra postagem no blog bloggers, o Portal
6, os resultados operacionais
Então, blogueiros visual studio 2019 plataformas c # consola pode ser gerado por dll Matlab chama a função Matlab :
Blogueiros também de código e arquivos DLL nos recursos de biblioteca, (não recomendado para blogueiros para download, você pode seguir os passos na blogueiros operação Bowen, e depois resolver alguns bug específico (bug ocorre devido a diferentes computadores podem variar) , será capaz de fazer.) gostaria de ter uma pré-visualização ou para ver Bo Amigos do processo de visualização pode ser baixado arquivos de código blogueiro portal
(incluindo o código e matlab dll arquivo que vem com dll blogueiros para escrever c # e plataforma Builder e referência o papel está limitado a amigos matlab2019a e de blog studio2019 visuais usar outras versões do bloggers incerteza pode diretamente executar)