参考博客:https://blog.youkuaiyun.com/houchaoqun_xmu/article/details/69641641
https://blog.youkuaiyun.com/shenziheng1/article/details/54175220
http://www.matlabsky.com/thread-11925-1-1.html
所用平台:Win7,MATLAB R2014a,VS2015,libsvm-3.22
MATLAB R2014a网上有镜像下载以及破解方法,不再赘述。
libsvm-3.22官方下载地址:https://www.csie.ntu.edu.tw/~cjlin/libsvm/ 选择zip file或tar.gz都可以
下载好后,解压,我个人放在了C盘的program files中。
1.在Matlab中设置路径
中文版的话点击设置路径,点击添加并包含子文件夹
,添加刚刚下载好的libsvm-3.22的路径,点击保存即可。
2.在MATLAB中编译
将当前目录改成libsvm-3.22\matlab目录下,输入make命令,出现了如下错误:
Error: ..\libsvm-3.22\matlab\make.m failed (line 13)
LINK : fatal error LNK1104: 无法打开文件“libsvmread.mexw64”
原因:好像是我libsvm放在了C盘,而Win7默认没有C盘的权限
解决方法:用管理员身份重新打开MATLAB,重新编译即可
正常编译的结果如下:
3.加载测试数据集
在libsvm-3.22目录下输入
>> [heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');>> model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
>> [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);
注:在加载测试集这一步,很多博客说有重名的问题,要将libsvm\matlab下的svmtrain和svmpredict 相应改成 libsvmtrain和libsvmpredict。比如说这两篇文章:https://blog.youkuaiyun.com/sinat_28224453/article/details/51516544和https://blog.youkuaiyun.com/inter_xuxing/article/details/7612429但是,在我这里不需要,我也不知道什么回事,难道因为我make在libsvm-3.22\matlab目录下,而加载测试集在libsvm-3.22下吗?这个问题暂时放着。
至此,libsvm在MATLAB上已经配置完毕。