【发布时间】:2023-03-02 23:10:02
【问题描述】:
在网上浏览了一下,C# 和 Matlab 之间似乎可以互操作。我想知道是否有人在这方面取得了成功,以及他们为此做了什么。如果可能的话,在不使用 COM 的情况下以某种方式将其拉下来。感谢您的宝贵时间。
【问题讨论】:
标签: c# .net matlab interop matlab-deployment
在网上浏览了一下,C# 和 Matlab 之间似乎可以互操作。我想知道是否有人在这方面取得了成功,以及他们为此做了什么。如果可能的话,在不使用 COM 的情况下以某种方式将其拉下来。感谢您的宝贵时间。
【问题讨论】:
标签: c# .net matlab interop matlab-deployment
是的,很有可能。虽然我最终使用了 C 接口并使用混合模式 DLL 调用它(并让 C# 调用它......但那是因为我还与其他一些 C 代码交互)。这很简单。在要运行程序的计算机上,您需要安装 Matlab Runtime MCRInstaller.exe。
编辑:删除断开的链接
【讨论】:
如果你愿意花钱,这可能就是你需要的:
http://www.mathworks.com/products/netbuilder/
它可以为 Matlab 代码生成包装器,允许从 .NET 和 COM 调用它。
【讨论】:
从 MATLAB 的 R2009a 版本开始,可以从 MATLAB 访问 .NET 对象:
http://www.mathworks.com/help/techdoc/matlab_external/brpb5k6.html
在旧版本的 MATLAB 中,可以使用 CCW 从 MATLAB 访问 .NET 对象:
http://www.mathworks.com/support/solutions/data/1-5U8HND.html?solution=1-5U8HND
以及来自 .NET 的 MATLAB 引擎:
您还可以使用 MATLAB Builder NE 将 m 代码包装到 .NET 程序集中。
【讨论】:
是的,我设法做到了,而且几乎没有痛苦。
您必须为 .NET 编译您的 MATLAB 代码(如以前的答案中所述),运行 MCR 安装程序,在您的 .NET 项目中引用 MWArray.dll 和已编译的代码 dll,然后就可以了。
唯一的烦恼是接口强制你的转换(有时是多个转换!)(在转换运算符中使用显式)
【讨论】:
在 R2009a 预发行版中,您可以从 MATLAB 调用 .net 程序集。
【讨论】:
我不确定这对您有多大影响,但请尝试查看 matlab 可执行文件或MEX 基本上,用 C 或 FORTRAN 编写程序真的很容易,包括一些库和函数,然后您就可以使用matlab 中的 C 或 FORTRAN 函数
【讨论】:
Matlab 有一个免费和开源的 .NET 包装器,它非常简单: http://www.codeproject.com/KB/dotnet/matlabeng.aspx
我用这个。
【讨论】: