我开发了一个 MATLAB 函数,我正在寻找一种从另一个 C# 应用程序调用该函数并将一些参数传递给它并在 C# 程序中获取结果的方法。
我听说我可以使用动态数据交换(DDE) 或 COM 对象,但我能做到吗?
MATLAB Central中有一个很好的例子。
它显示了如何与MATLAB通信的三种方式:
COM(我没有任何经验)
缺点:需要在目标计算机上安装 MATLAB。
MATLAB .NET builder将您的 MATLAB 代码编译为 .NET 程序集,您可以直接使用它。
优点:不需要在目标计算机上安装 MATLAB
缺点:很贵
MATLAB 编译器将您的 MATLAB 代码编译成 C/C++ 库或 EXE 文件。您可以通过P/Invoke使用它。
优点:不需要在目标计算机上安装 MATLAB
缺点:价格昂贵,需要大量 P/Invoke。
还有第三种选择:委托。启动 MATLAB -> 加载 .NET 程序集 -> 使用 MATLAB 函数的委托句柄执行 .NET 函数。
这个网站上有一个很好的例子来设置一切。您可以使用 MATLAB .NET 部署工具。
你需要
这种方法的优点是目标机器不需要安装 MATLAB,但缺点是执行起来相当昂贵。