从 C# 调用 MATLAB 函数
我开发了一个 MATLAB 函数,并且正在寻找一种从另一个 C# 应用程序调用该函数并向其传递一些参数并在 C# 程序中获取结果的方法。
我听说我可以使用动态数据交换 (DDE) 或COM 对象,但是我可以这样做吗?
I developed a MATLAB function, and I'm looking for a way to call that function from another C# application and pass some parameters to it and get the results in the C# program.
I heard that I can use Dynamic Data Exchange (DDE) or COM objects, but have can I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
MATLAB Central 中有一个很好的示例。
它展示了如何与 MATLAB 进行通信的三种方式:
COM(我没有任何经验)
缺点:需要在目标计算机上安装 MATLAB。
MATLAB .NET 生成器将您的 MATLAB 代码编译为 .NET 程序集,您可以直接使用它。
优点:不需要在目标计算机上安装 MATLAB
价格昂贵
缺点: MATLAB 编译器将您的 MATLAB 代码编译为 C/C++ 库或 EXE 文件, 。您可以通过P/Invoke使用它。
优点:不需要在目标计算机上安装 MATLAB
缺点:价格昂贵,P/Invoke 较多。
There is nice example in the MATLAB Central.
It shows three ways on how to communicate with MATLAB:
COM (I do not have any experience with it)
Cons: MATLAB is required to be installed on the target computer.
MATLAB .NET builder compiles your MATLAB code to the .NET assembly and you can use it directly.
Pros: MATLAB is not required to be installed on the target computer
Cons: It's expensive
MATLAB compiler compiles your MATLAB code into a C/C++ library or EXE file. You can use it through P/Invoke.
Pros: MATLAB is not required to be installed on the target computer
Cons: It's expensive, a lot of P/Invoke.
还有第三个选项:代表。启动 MATLAB ->加载 .NET 程序集 ->使用 MATLAB 函数的委托句柄执行 .NET 函数。
There is a third option: delegates. Starting MATLAB -> load .NET assembly -> execute .NET function with delegate handle to a MATLAB function.
这个网站上有一个很好的例子 设置一切。您可以使用 MATLAB .NET 部署工具。
您需要
工具。这将创建一个 .dll 文件。
这种方法的优点是目标机不需要安装MATLAB,但缺点是执行成本相当高。
There is a great example on this site on setting up everything. You can use MATLAB .NET deployment tool.
You need to
Tool. This will create a .dll file.
The advantage of this method is that the target machine does not require MATLAB to be installed, but on the downside the execution is quite expensive.