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

4 篇文章 0 订阅
3 篇文章 0 订阅

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

  1. 安装MCR
  2. 引用MWArray.dll
  3. 引用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的文件中引入两个命名空间:

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):

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

参考资料

  1. Matlab混合编程之NET组件(C#篇)
  2. C#中调用 matlab dll 作曲线拟和
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值