由于一些莫名的恐惧和不愿思考,导致这个工具箱一直没安装好,总是想找其他的代码代替,找了一圈发现还是解决这个问题吧!百度了挺久发现不少人在这个问题上也遇到了相似的问题,具体如这个帖子上说的http://www.dataguru.cn/thread-622292-1-1.html,当然这个帖子并没有解决我的问题,所以分享一下我最后的解决方法。现在想一想,大概是自己对未知的东西太不敢去探求了,实际上是很容易解决的问题。
我使用的是matlab2016b。
随机森林工具箱下载地址,参考这里:http://www.ilovematlab.cn/thread-168115-1-1.html#opennewwindow,我只用分类那一部分。其实里面有很详细的说明read me,不过我没有完全看懂,真的对这些工具不熟,半路出家很难受。但是基本的流程还是知道的。
1. 我用的是方法二DevC++编译twonorm_C_devc.dev,按下载地址下载就可以了,编译后会生成一个.exe文件。
2.由于我电脑里没有visual studio所以下载了2017社区版,记得当时百度说只要下载桌面应用那一部分就OK,不太记得了,如果网速快就全部下载吧。下载完了以后在matlab里 mex -setup ,设置成vc++就可以了。反正gcc不行
3.然后就是直接在matlab里编译了,运行compile_windows.m,可能会出现最上面那个帖子说的错误,错误代码是
warning C4267和 error C2664,前者是警告不需要管他,后者是类型转换错误。是mex_ClassificationRF_train.cpp代码出现了问题,用vs打开mex_ClassificationRF_train.cpp这个文件,找到这个函数mxCreateNumericMatrix,将它第四个参数“0”改成static_cast<mxComplexity>(0)就OK了,所有的都要改,大概十几处吧。改完了就可以编译成功了。