Matlab和C#之间的互操作

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

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

编辑:删除断开的链接

从R2009a发布的MATLAB开始,可以从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/

是的,我设法做到了这一点,它几乎是无痛的。

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

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

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

我用这个。

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

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

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

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

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