C# Matlab与C语言的互操作#

C# Matlab与C语言的互操作#,c#,.net,matlab,interop,matlab-deployment,C#,.net,Matlab,Interop,Matlab Deployment,在浏览了互联网之后,看起来C#和Matlab之间的互操作是可能的。我想知道是否有人在这方面取得了成功,以及他们是如何做到的。如果可能的话,在不使用COM的情况下实现它。谢谢您的时间。是的,很有可能。虽然我最终使用了C接口,并使用混合模式DLL调用了该接口(并让C#调用该接口…但那是因为我还与其他一些C代码进行了接口)。这很简单。在要运行程序的计算机上,需要安装Matlab Runtime mcrinshiller.exe 编辑:删除断开的链接如果你愿意花钱,这可能是你需要的: 它可以为Matl

在浏览了互联网之后,看起来C#和Matlab之间的互操作是可能的。我想知道是否有人在这方面取得了成功,以及他们是如何做到的。如果可能的话,在不使用COM的情况下实现它。谢谢您的时间。

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


编辑:删除断开的链接

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


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

从Matlab的R2009a版本开始,.NET对象可以从Matlab访问:

在旧版本的MATLAB中,可以使用CCW从MATLAB访问.NET对象:

以及.NET中的MATLAB引擎:

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


是的,我设法做到了,而且基本上没有痛苦

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


唯一令人烦恼的是界面强制您执行的强制转换(有时是多个强制转换!)(在强制转换操作符中使用显式)

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

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

matlab有一个免费的开源.NET包装器,非常简单:


我用这个。

看起来可行,但我是一个吝啬的学生。但要小心。没有一个有价值的说唱歌手想当他在一首歌的时候被这样或那样称呼。在所有的选择中,这是我最后一次尝试,最后我做了什么。从Mathworks的角度来看,这是最受支持和记录的场景。请记住,32位或64位版本的Matlab只能分别承载32位或64位进程内COM服务器。第一个链接已断开。