Libsvm在MATLAB中安装问题(32位)

本人电脑系统是32位机,MATLAB是2014a版本,安装下载的libsvm是最新版的libsvm-3.22。

遇到的问题:

由于MATLAB是去年就装上并一直使用,下载libsvm后一直显示报错:

No supported SDK or compiler was found on this computer. For a list of supported compilers, see  

http://www.mathworks.com/support/compilers/R2014a/win64.html  

后来尝试过网上的很多方法,包括安装SDK7.1(但没有安装成功)安装visual studio2010,也还是报错。最终的处理方法是重新安装了MATLAB2014a,问题解决了。


我这个比较奇葩,整了好几天最后还是重新安装MATLAB解决的,有很多人不需要重新安装MATLAB或者visual studio的,参考方法见论坛中的讨论:

http://www.ilovematlab.cn/thread-298097-1-1.html点击打开链接


在mex -setup 可以编译成功后,需要在MATLAB中添加编译成功后生产四个文件的所在的路径。

参考文章  点击打开链接


其中两个文件是修改过名称的。原名字分别是svmtrain.mexw32、svmpredict.mexw32.修改为libsvmtrain.mexw32和libsvmpredict.mexw32。

因为Matlab中自带有SVM的工具箱,而且其函数名字就是svmtrain和svmpredict,和LIBSVM默认的名字一样,在实际使用的时候有时会产生一定的问题,比如想调用LIBSVM的变成了调用Matlab SVM。


需要注意的是:文章中说明的下载matlab数据集不需要下载,libsvm-3.22文件中是包含的。


如下所示为libsvm-3.22文件。


只需要将heart_scale的文件路径添加到MATLAB中即可。

最后成功实现安装。

安装成功的测试代码:

[heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
>> model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
[predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);

结果显示:


以上是我的辛苦历程,希望对各位有所帮助。可能我的情况与大家遇到的情况、版本有所不同,但方法都是适用的,也可参考文中贴出的两个链接,安装链接里面的内存尝试也可以成功安装。

libsvm的下载地址:https://www.csie.ntu.edu.tw/~cjlin/libsvm/#download

本文章无需积分下载的链接,只为帮助有需要的人,以消自己安装尝试中经历过的无奈,更消没有积分无法安装一些CSDN文章中的愤恨!