VS 2010调用MATLAB 2012a引擎

工作原理

利用VS 2010可以调用MATLAB 2012a引擎,实现数据在MATLAB和C++间进行数据的交换和传递。图1给出了MFC程序,通过MATLAB引擎将C++中的杆长、杆宽等编辑框的数值传递给MATLAB,利用MATLAB的ode45程序,计算单杆柔性机械臂的变形,点击按钮"画出末端变形",绘制出末端变形图。

VS 2010调用MATLAB 2012a引擎

图 1 最终效果图

VS 2010调用MATLAB 2012a引擎

图2 末端变形图
新建对话框及其上控件
初始化引擎
打开引擎
读取编辑框的数值
读取编辑框的数值
设定全局变量
执行函数文件
从Matlab中得到计算结果
并绘制图形
从Matlab中得到计算结果
并绘制图形
将计算结果写入txt文档中
关闭引擎
图3 程序流程图

电脑配置

将C:\Program Files\MATLAB\R2012a\bin\win64添加到系统环境变量,注意对于64位系统,应该将win64子文件夹带上。

VS 2010调用MATLAB 2012a引擎

图4 修改环境变量

MATLAB 2012a配置

MATLAB 2010b 之后包含对VS2010编译器的支持,2010a及之前版本不包含支持。因此无需对MATLAB 2012a作任何配置,注意在安装MATLAB 2012a时应该安装编译器组件。

VS 2012 配置

1. 修改项目属性

VS 2010调用MATLAB 2012a引擎

图5 点击项目右键,进行属性修改

2. 修改运行平台

VS 2010调用MATLAB 2012a引擎

图6 如果MATLAB 2012b为64位,修改活动解决方案平台

3. 附加包含目录

将"C:\Program Files\MATLAB\R2012a\extern\include"添加为项目的附加包含目录

VS 2010调用MATLAB 2012a引擎

图7 附加包含目录

4. 附加库目录

将"C:\Program Files\MATLAB\R2012a\extern\lib\win64\microsoft;"添加为项目的附加包含目录

VS 2010调用MATLAB 2012a引擎

图8 附加库目录

5. 输入依赖项

将"libeng.lib;libmx.lib"作为项目的依赖项

VS 2010调用MATLAB 2012a引擎

图9 输入依赖项