19

在互联网上窥视之后,似乎可以在 C# 和 Matlab 之间进行互操作。我想知道是否有人在这方面取得了成功,以及他们为此做了什么。如果可能的话,在不使用 COM 的情况下以某种方式将其拉下来。谢谢你的时间。

4

7 回答 7

20

从 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 引擎:

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/matlab_external/f135590.html#f135616

您还可以使用 MATLAB Builder NE 将 m 代码包装到 .NET 程序集中。

http://www.mathworks.com/products/netbuilder/

于 2009-01-12T14:55:28.000 回答
10

是的,很有可能。虽然我最终使用了 C 接口并使用混合模式 DLL 调用它(并让 C# 调用它......但那是因为我也在与其他一些 C 代码交互)。这很简单。在要运行程序的计算机上,您需要安装 Matlab Runtime MCRInstaller.exe。

编辑:删除断开的链接

于 2009-01-12T03:25:56.100 回答
3

是的,我设法做到了,而且几乎没有痛苦。

您必须为 .NET 编译 MATLAB 代码(如以前的答案中所述),运行 MCR 安装程序,在 .NET 项目中引用 MWArray.dll 和编译后的代码 dll,然后离开。

唯一的烦恼是接口强制你的转换(有时是多个转换!)(在转换运算符中使用显式)

于 2009-01-12T15:10:09.220 回答
1

Matlab 有一个免费和开源的 .NET 包装器,非常简单: http: //www.codeproject.com/KB/dotnet/matlabeng.aspx

我用这个。

于 2009-07-28T18:29:15.540 回答
0

如果你愿意花钱,这可能是你需要的:

http://www.mathworks.com/products/netbuilder/

它可以为 Matlab 代码生成包装器,允许从 .NET 和 COM 调用它。

于 2009-01-12T03:29:41.880 回答
0

在 R2009a 预发行版中,您可以从 MATLAB 调用 .net 程序集。

于 2009-01-21T20:34:35.943 回答
0

我不确定这对您有多大影响,但请尝试查看 matlab 可执行文件或MEX基本上,用 C 或 FORTRAN 编写程序真的很容易,包括一些库和函数,然后您可以使用 C 或 FORTRAN 函数在matlab中

于 2009-02-01T06:44:08.503 回答