matlab为何小众,matlab跟C#对接 - 小众知识

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:24   1376   0

目的:将matlab的.m导出生成.DLL,在C#下调用该dll。

环境:vs2012 、 matlab2013a

步骤:

下面我以一个具体的实例来演示,希望能给大家带来帮助,如有不对的地方,还请大家留言,以便我改进。

(一)在matlab2013a下面新建一个.m文件,我们以两个数求和的函数作为例子,如下截图

(二)为matlab设置编译器。

在matlab命令窗口输入mbuild -setup选择编译器,我机器上的编译器只有vs2012(注意如果使用VS.net做

应用的话,建议编译器选VC2012,否则C#中会告诉你DLL找不到Entry Point,网上说的),这里就不贴图了。

(三)在vs2012下新建一个接口文件,注意接口里函数的名字必须跟你matlab中主函数名字一致(我这里就是addTwo)

3.1> 新建一个类库test

3.2>修改关键字class-->interface,接口名字随便修改Class1-->testFace,函数名字必须是addTwo

3.3> 配置管理器,我用的是x64,你如果用的是x86的话就选择x86。

3.4> 注意,最后要重新生成解决方案

(四)将生成的test.dll(该动态链接都在改项目所在目录下的test\bin\x64\Debug里)拷贝到matlab中的addTwo.m文件所在的目录下。

4.1>然后在命令窗体中输入“deploytool”

4.2>输入上述命令后,弹出对话框,工程名随便起,这里叫“testMatlab",选择.NET Assembly

4.3>设置,NET为3.5,设置Type Safe Api为刚添加的test.dll,设置完成后关闭对话框。

4.4>添加要编译的.M文件.单击“Add classes”,类名随便写一个“MC”,在该类名下添加.M文件addTwo.m,最后单击右上角的生成按钮

如果编译成功会出现如下画面

(五)拷贝的matlab下的dll文件

(六)在vs2012下面新建控制台应用程序,将上面的三个dll引用进来,你可以先把上面3个dll拷贝到工程下面一个文件夹下面,然后引用。

6.1>添加引用,由于之前命名空间就是testMatlab(拷贝dll时,我们要拷贝testMatlabNative.dll),所以要引用该命名空间”using testMatlab“

6.2>设置该项目属性,主要是设置.NET 3.5跟cpu是x64

(七)运行程序,检验成果

参考文献:http://blog.sina.com.cn/s/blog_4b94ff130100d4uf.html

http://www.cnblogs.com/drizzlecrj/archive/2009/04/20/1439636.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP