2009-01-12 143 views
20

在互联网上窥视之后,它看起来可以在C#和Matlab之间进行互操作。我想知道是否有人有成功,他们做了什么。如果可能以某种方式将其关闭而不使用COM。谢谢你的时间。Matlab与C#之间的互操作#

回答

10

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

编辑:去除破损的链接

0

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

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

它可以产生Matlab代码封装,允许它被称为来自.NET和COM。

+0

看起来可行,但我是一个吝啬的小气的学生。 – smaclell 2009-01-12 03:51:25

+1

但要小心。没有值得他的盐的饶舌歌手会喜欢这样叫,或者当他在一首歌曲中间。 – 2009-01-12 03:55:03

20

借助MATLAB R2009a版本开始,.NET对象可以从MATLAB访问:

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/

3

是的,我成功地做到这一点,它主要是无痛的。

您必须编译.NET的MATLAB代码(如前面的解释所述),运行MCR安装程序,参考MWArray.dll和.NET项目中的编译代码dll,然后关闭。

唯一的烦恼是铸造(有时多件!)那你的界面力(中投运营商使用显式)

0

在R2009a发布前,你可以从MATLAB调用.NET程序集。

0

我不确定这对你有多大影响,但试试看matlab可执行文件或MEX基本上,用C或FORTRAN编写程序非常简单,包括一些库和函数,然后你可以使用你在MATLAB

C或FORTRAN功能