您的位置:首页 > 编程语言 > MATLAB

MATLAB.NET混合编程之二~~由C#调用MATLAB编译生成的dll

2016-01-26 16:56 881 查看
假设我们现在拿到一份matlab编译成的dll,该怎么在C#项目中调用呢?大致需要遵守下面几个步骤:

安装MCR

引用MWArray.dll

引用matlab编译出的dll

安装MCR

首先要找到matlab的dll兼容的MCR是什么版本,可以参考本系列上篇《MATLAB.NET混合编程之一~~由MATLAB编译dll》,里面提到matlab编译dll后会同时生成overview,里面有关于MCR版本的要求。

另一个方法是直接问dll的提供者,没有理由dll都编译出来了还不知道使用哪个版本的MCR。MCR的下载很简单,直接问度娘吧。

引用MWArray.dll

MWArray.dll是我们在混合编程中必然会用到的,基本上C#代码跟matlab的函数交互就靠这个类以及它的子类比如MWCellArray、MWNumericArray等等

MWArray.dll在安装好MCR之后就可以在安装目录找到,如果安装了matlab,也可以在matlab的目录里找到,不过混合编程的部署机器基本上都不会安装matlab,这玩意太大了,一般就安装个MCR就行。

一般路径是
C:\Program Files\MATLAB\MATLAB Compiler Runtime\v717\toolbox\dotnetbuilder\bin\win64\v2.0


添加完MWArray.dll后,还需要在引用matlab.dll的文件中引入两个命名空间:

[code]using MathWorks.MATLAB.NET.Array;
using MathWorks.MATLAB.NET.Utillity;


这样就可以在代码中使用MWArray了。

引用matlab生成的dll

经过前面两步,已经可以在c#中使用matlab生成的dll了,在C#工程中添加对于dll的引用,然后在代码文件中引用相关的dll命名空间就可以调用dll中封装的matlab函数了。以前一篇《MATLAB.NET混合编程之一~~由MATLAB编译dll》的matlab函数为例(假设类名为DemoClass):

[code]MWArray num=5;
DemoClass dc=new DemoClass();
MWArray result=dc.MyTest(num);
//result就是运算的结果


参考资料

Matlab混合编程之NET组件(C#篇)

C#中调用 matlab dll 作曲线拟和
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: