在做项目时,需要利用matlab来调用c++程序接口,并且将数据传过来,折腾几天,分享出来,互相帮助。
混合编程原理
众所周知,matlab是基于c++的科学计算软件,因此必然是可以与c++混合编程的,其中用到了mex()
安装篇
安装是非常坑的,事实上网上,论坛上讲的非常复杂,尝试了很多种方法都不成功(自带踩坑体质),这里给出我的安装方法,应该可以一次成功。
- 首先下载mingw编译器,链接: mingw编译器安装
- 第一步,选择download
- 第二步,根据自己电脑位数选择,我的电脑选择64位
- 安装,取消勾选,点击create
- 设置安装路径,点击next
- 默认安装即可
- 安装好后添加环境变量
- 进入matlab,输入
setenv('MW_MINGW64_LOC','D:\someneedEnglish\matlab2016a\gccsetup')
MW_MINGW64_LOC 为环境变量名
D:\someneedEnglish\matlab2016a\gccsetup 为安装目录
- 此时再输入
mex -setup
发现不报错了
至此,安装问题解决。
使用篇
- 在我混合编程时,需要具备一定的c++基础,其实困扰我们的往往是环境的错误,因此在安装完毕后,使用也就不是难题了,大家可以自己搜索博客教程。
- 函数写法请参照网上各种教程,这里指出容易错误的地方。如图