首先吐槽一下CSDN这个能活活把人恶心死的文章编辑器。
前几天用BP神经网络做了一个手写体数字识别的小实验,因为界面是C++写的,训练BP网络是在MATLAB上做的。就像偷个懒看看C++能不能直接调用MATLAB的神经网络工具箱。
最早采用的方案是用MATLAB控制台把写好的.m文件编译成DLL。但是遇到一个比较大的问题:编译出来的DLL,需要传递的参数类型为mwArray,我不知道怎么将保存到本地的训练好的网络读取成mwArray。查了查资料也没有什么好的解决方案,所以这个方案暂时搁置。烦请各位路过的大神指点一二。
最后拿来凑合的方案是直接调用matlab engine,然后直接在C++中调用神经网络工具箱的sim()函数解决战斗。下面我详细讲一下过程。
首先是环境变量的配置,我使用的是MATLAB 2010b,安装在D盘。以我自己的电脑为例,在安装MATLAB的时候环境变量已经配置好了D:\Program Files\MATLAB\R2010b\bin这一项。不过需要注意的是,如果你的系统是64位的,并且使用的MATLAB版本较高(好像是高于7.0就会出问题)