Matlab和C#之间的互操作

时间:2009-01-12 03:11:16

标签: c# .net matlab interop matlab-deployment

在互联网上偷看后,看起来可以在C#和Matlab之间进行互操作。我想知道是否有人取得了成功以及他们做了什么。如果可能的话,不使用COM就把它拉下来。谢谢你的时间。

7 个答案:

答案 0 :(得分: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/

答案 1 :(得分:10)

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

编辑:删除损坏的链接

答案 2 :(得分:3)

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

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

唯一的烦恼是界面强迫你施放(有时是多次铸造!)(在施法操作符中使用显式)

答案 3 :(得分:1)

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

我用它。

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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