从c#调用MATLAB函数

本文关键字:函数 MATLAB 调用 | 更新日期: 2023-09-27 17:54:52

我开发了一个MATLAB函数,我正在寻找一种方法从另一个c#应用程序调用该函数,并传递一些参数给它,并在c#程序中获得结果。

我听说我可以使用动态数据交换(DDE)或COM对象,但是我能做到吗?

从c#调用MATLAB函数

在MATLAB Central中有一个很好的例子。

它展示了如何与MATLAB通信的三种方法:

    <
  1. COM/gh>MATLAB .NET builder
  2. MATLAB编译器

COM(我没有任何经验)

缺点:需要在目标机上安装MATLAB。

MATLAB . net builder将MATLAB代码编译为。net程序集,您可以直接使用它。

优点:不需要在目标计算机上安装MATLAB

缺点:很贵

MATLAB编译器将MATLAB代码编译成C/c++库或EXE文件。您可以通过P/Invoke使用它。

优点:不需要在目标计算机上安装MATLAB

缺点:很贵,p/Invoke很多

还有第三种选择:委托。启动MATLAB ->加载。net程序集->用委托句柄执行。net函数到MATLAB函数。

这个网站上有一个很好的关于设置一切的例子。可以使用MATLAB . net部署工具。

你需要

  • 安装MCR (Matlab Compiler Runtime)。使用Matlab Deploy将Matlab函数部署到。net Assembly中工具。这将创建一个.dll文件。
  • 在。net项目中添加.dll引用。
  • 添加MATLAB.NET的引用。

这种方法的优点是目标机器不需要安装MATLAB,但缺点是执行成本相当高。