Matlab高级教程_第二篇:一个简单的混编例子

时间:2022-02-15 13:03:54

1. 常用的混编是MATLAB和VS两个编辑器之间的混编方式。

2. 因为MATLAB的核是C型语言,因此常见的混编方式是MATLAB和C型语言的混编。

3. 这里介绍一个简单的MATLAB语言混编成C#的调用实例。

4. 这里用到的几个关键字:

4.1 环境MATLAB环境:是MATLAB 2012A 32位版本,也用到MATLAB 2012A 64位版本(如果采用32位版本,矩阵运算也可以运行),有时候用到矩阵运算的时候会提示警告信息。可以直接选择X86框架,也可以直接这样选择,一样会报错但是不用理会。

原因是,我这里导入了MATLAB的矩阵运算库,是32位2012a的,导入一个64位的矩阵运算库就不会出现这样的错误提示信息了。当然也可以不用理会,只要程序能够正常运行就可以。

Matlab高级教程_第二篇:一个简单的混编例子

4.2 MWArray矩阵运算库,MATLAB叫矩阵运算实验室,因此大多数的运算使用到了矩阵运算的库。因此在VS外部调试的时候需要把这个矩阵运算库引用进来,这个矩阵运算库的目录在:

这里按照的是32位版本的MATLAB,如果安装64位版本的MATLAB,这个位置是win64。

Matlab高级教程_第二篇:一个简单的混编例子

 

4.3 dll,导出的文件也是dll文件,因此引用也是引用dll文件

4.4 MWArray是MATLAB矩阵运算库,这个是必须的,到处完毕后也会有一个readme的英文文档。里面也有详细的安装说明。关于MWArray的这个矩阵运算的包后面详细说明。

5. 我们导一个64位架构的。

(1) 写一个函数并测试(注意必须是m文件)

Matlab高级教程_第二篇:一个简单的混编例子

Matlab高级教程_第二篇:一个简单的混编例子

(2)打开deploytool工具箱,命令行输入即可,添加相关内容,选择.net Assembly语言(C#)

Matlab高级教程_第二篇:一个简单的混编例子

Matlab高级教程_第二篇:一个简单的混编例子

这是我们需要的两个文件,主要是上面那个,下面那个是说明

(3)编写类名并把文件添加进来(C#是以类的形式存在,当然你带懂C#)

Matlab高级教程_第二篇:一个简单的混编例子

(4)开始生成

Matlab高级教程_第二篇:一个简单的混编例子

(5)完成

Matlab高级教程_第二篇:一个简单的混编例子

(6)进入VS2017进行调试,新建控制台(框架不用选太高)

Matlab高级教程_第二篇:一个简单的混编例子

 

(7)打开生成的文件目录位置

Matlab高级教程_第二篇:一个简单的混编例子

readme就是相关的生成说明。我们需要要MATALB EXCHANGE.DLL这个文件。

 

(8)添加生成的函数引用和MATLAB自动的矩阵运算的引用(dll文件都是,上面那个就是生成的函数,因为生成都是以dll存在的,因此要引用进来,MATLAB矩阵库的位置上面有对应引用进来就行)

Matlab高级教程_第二篇:一个简单的混编例子

Matlab高级教程_第二篇:一个简单的混编例子

(不过还是会提示这个问题,选了X64的就没问题,不过不用管这个了先,没问题)

 (9)输入代码

Matlab高级教程_第二篇:一个简单的混编例子

上面两个就是MWArray的命名空间,下面那个就是生成函数的命名空间。

 (12) 还有个地方,以防万一(始终复制)

Matlab高级教程_第二篇:一个简单的混编例子

Matlab高级教程_第二篇:一个简单的混编例子

和MATLAB一致

Matlab高级教程_第二篇:一个简单的混编例子