在互联网上窥视之后,似乎可以在 C# 和 Matlab 之间进行互操作。我想知道是否有人在这方面取得了成功,以及他们为此做了什么。如果可能的话,在不使用 COM 的情况下以某种方式将其拉下来。谢谢你的时间。
7 回答
从 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 程序集中。
是的,很有可能。虽然我最终使用了 C 接口并使用混合模式 DLL 调用它(并让 C# 调用它......但那是因为我也在与其他一些 C 代码交互)。这很简单。在要运行程序的计算机上,您需要安装 Matlab Runtime MCRInstaller.exe。
编辑:删除断开的链接
是的,我设法做到了,而且几乎没有痛苦。
您必须为 .NET 编译 MATLAB 代码(如以前的答案中所述),运行 MCR 安装程序,在 .NET 项目中引用 MWArray.dll 和编译后的代码 dll,然后离开。
唯一的烦恼是接口强制你的转换(有时是多个转换!)(在转换运算符中使用显式)
Matlab 有一个免费和开源的 .NET 包装器,非常简单: http: //www.codeproject.com/KB/dotnet/matlabeng.aspx
我用这个。
如果你愿意花钱,这可能是你需要的:
http://www.mathworks.com/products/netbuilder/
它可以为 Matlab 代码生成包装器,允许从 .NET 和 COM 调用它。
在 R2009a 预发行版中,您可以从 MATLAB 调用 .net 程序集。
我不确定这对您有多大影响,但请尝试查看 matlab 可执行文件或MEX基本上,用 C 或 FORTRAN 编写程序真的很容易,包括一些库和函数,然后您可以使用 C 或 FORTRAN 函数在matlab中