在进行相关算法的开发和设计过程中,MATLAB具有特别的优势,尤其是对于矩阵运算的处理,具有很多现成的方法和函数可以进行调用,同时MATLAB支持把函数封装成不同的语言方便完成算法的集成。
这里记录利用MATLAB封装成C++动态链接库,需要用的环境、注意事项和封装过程中的技巧。
-
要想进行函数的封装过程,首先需要MATLAB的app扩展包,这里给出下载好的安装包,用MATLAB打开后可以直接进行安装,这个是安装的编译器,此安装过程不需要卸载已经安装好的MATLAB,重新安装。
这里是百度云下载地址
链接:https://pan.baidu.com/s/1AgXnmExI5Bcl9Zezkko7qA
提取码:azrz
–来自百度网盘超级会员V4的分享 -
封装完成的动态链接库想要在QT中进行调用,需要注意所选择的编译器要和QT中使用的编译器保持一致,
-
在封装函数的时候,为了防止不确定所选择的编译器,可以输入指令:
>> mbuild -setup C++
MBUILD 配置为使用 'MinGW64 Compiler (C++)' 以进行 C++ 语言编译。
要选择不同的 C++ 编译器,请从以下选项中选择一种命令:
MinGW64 Compiler (C++) mex -setup:C:\Users\sen\AppData\Roaming\MathWorks\MATLAB\R2020a\MBUILD_C++_win64.xml C++ -client MBUILD
MinGW64 Compiler with Windows 10 SDK or later (C++) mex -setup:D:\Polyspace\R2020a\bin\win64\mexopts\mingw64_g++_sdk10+.xml C++ -client MBUILD
本人使用的时候点击勾选第一个
然后会出现
MBUILD 配置为使用 'MinGW64 Compiler (C++)' 以进行 C++ 语言编译。
-
在很多时候,调用MATLAB函数是为了处理矩阵数据或者应用特殊算法,为了减少qt中的矩阵处理过程,可以相应的把MATLAB中简单的矩阵变换等也封装成自己的函数进而生成.dll的动态链接库,这样就可以在qt中进行调用使用。如MATLAB中的reshape函数,卷积函数,转置函数等。
-
自己编写的.m函数文件可以封装,同样的对于MATLAB自带的函数也可以进行封装,也可以正常调用,同时对于调用自己的函数的嵌套函数,只要在同一个文件夹下,是可以识别后整体进行封装的,不影响使用过程。
-
使用deploytool进行封装就可以,不必使用
下面这种就可以了,这种生成的文件较少,使用起来也很方便,
-
总结起来就是只有要函数就可以封装成C++的动态链接库。