我开发了一个MATLAB函数,我正在寻找一种方法从另一个C#应用程序调用该函数并将一些参数传递给它并在C#程序中获得结果。
我听说我可以使用Dynamic Data Exchange(DDE)或COM对象,但我可以这样做吗?
答案 0 :(得分:20)
MATLAB Central中有一个很好的例子。
它显示了如何与MATLAB进行通信的三种方式:
COM (我没有任何使用经验)
缺点:需要在目标计算机上安装MATLAB。
MATLAB .NET构建器将您的MATLAB代码编译为.NET程序集,您可以直接使用它。
优点:不需要在目标计算机上安装MATLAB
缺点:价格昂贵
MATLAB编译器将您的MATLAB代码编译成C / C ++库或EXE文件。您可以通过P/Invoke使用它。
优点:不需要在目标计算机上安装MATLAB
缺点:它很贵,很多P / Invoke。
答案 1 :(得分:5)
还有第三种选择:delegates。启动MATLAB - >加载.NET程序集 - >使用MATLAB函数的委托句柄执行.NET函数。
答案 2 :(得分:2)
在设置所有内容方面有一个很好的例子 on this site 。您可以使用MATLAB .NET部署工具。
你需要
这种方法的优点是目标机器不需要安装MATLAB,但在不利方面,执行成本非常高。