2016-10-26 66 views
0

我有一个复杂的Matlab函数,我不想在C#中重写。该函数返回一个包含N个双精度数字的数组。Matlab输出到C#

鉴于我已将函数编译为.NET程序集(.dll文件),并且该函数的签名与[resutls] = myFunc('stringInput')类似,如何在函数内部调用函数C#代码?

谢谢!

+0

将引用的dll放在你的'.net'项目中,然后只是尊重你的函数的签名......你有没有尝试过一个小例子? – Hoki

回答

0

我这样做的方式是通过添加MLApp作为项目参考。 从MATLAB,您需要启动自动化服务:

enableservice('AutomationServer', true); 

和C#中,你可以使用连接到Matlab的。

MLApp.DIMLApp matlabInstance = (MLApp.DIMLApp)Marshal.GetActiveObject("Matlab.Desktop.Application"); 

然后您可以使用MLApp的接口函数进行交互。例如。

int a = (int)matlabInstance.GetVariable("variableName", "base"); 

甚至执行的东西。例如:

matlabInstance.Execute("evalin('base' , 'plot(range , dataVector , ''k'');');"); 

当然你需要一些错误处理,等等正常的应用程序的东西。 有一个关于它的话题here