Matlab转C/C++/Cmex文件加速运行方法

运行环境:

Matlab 2017a
VS2017
Win10
C编译器常用即可

Matlab转换必要性

众所周知Matlab中使用的语言编译运行机制与Python一样,被称为解释型语言(也即先翻译成中间代码,再由解释器对中间代码进行解释运行),相比于C/C++/Java/Cmex等编译型语言(直接翻译成机器语言)最大的特点就是“慢”!。
为了加速Matlab仿真的运行,节省科研工作者的时间,常用的方式就是将Matlab所用语言转换成C或者Cmex语言,能加速10倍或者更多,效率十分可观!

转换方法和调用途径

将Matlab中的函数(需要注意只能对函数进行转换,.m脚本文件不行)转为C/Cmex语言的示意图如下所示。根据所转换的语言可以分为两个途径:

途径一:

将经常编写的Matlab中的函数(函数名为:xx)转换为Cmex文件,得到的xx_mex.mexw64文件,使用方法为直接在matlab的其他程序中(.m脚本或者其他函数中)调用xx_mex即可(就像C语言调用函数一样),注意该xx_mex的输入输出也应指明,最终调用:output = xx_mex(input)

途径二

将经常编写的Matlab中的函数(函数名为:xx)转换为C语言文件,包括xx.c和xx.h文件,其中的main.c文件就是程序入口,这种途径的结果可以被直接引用到VS,Qt和CUDA中,方便嵌入式系统开发过程中matlab不开源函数的直接生成调用,能加速从matlab算法仿真到软件工程实现的过程。
转换途径接下来将详细记录以上两种途径的生成和使用过程:

转换过程:

1. 准备待被转换的函数和测试函数转换结果的测试文件:在这里插入图片描述在这里插入图片描述

2. 转换过程:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.转换结果

在这里插入图片描述在这里插入图片描述

调用方法:

1.途径一:

在这里插入图片描述

2. 途径二:

在这里插入图片描述

发布了17 篇原创文章 · 获赞 3 · 访问量 5443

猜你喜欢

转载自blog.csdn.net/weixin_40106401/article/details/103097014