出发点:将算法中的循环部分扔给C,加快matlab代码的运行速度。
主要步骤是:1.matlab中设置编译器 —— 2.编写cpp代码 —— 3.matlab中编译.cpp —— 4.调用编译好的函数
本人平台:win7x64,matlab 2012a,vs2012。在进行第1、3步时均出现异常情况,以下是解决方法:
设置编译器
mex -setup
异常:找不到编译器。
分析:matlab 2012a 不支持vs2012以上的版本,在“MATLAB\R2012a\bin\win64\mbuildopts”中可以查看matlab支持的版本,2012a最多支持到VC10.0。
解决方法:参考网友wiills的帖子:点击打开链接,可以为matlab添加对VC11.0的支持。
编译.cpp
mex test.cpp
异常:LINK : fatal error LNK1181: 无法打开输入文件“kernel32.lib”;
分析:缺少Windows SDK,据说VS会附带安装,但是我的没有。
解决方法:安装windows SDK 7.0,然后mex -setup会出现sdk的选项,选择并编译。
为了方便没有账号或积分的朋友,我把相应的教程和工具共享到这里:点击打开链接,请wiills多多见谅!伸手党请将以下点击打开链接文件直接复制到MATLAB\R2012a\bin\win64目录下
----------------
如以上方法不成功,可以尝试手动设置编译器,方法