Matlab + LibSVM + 问题集锦【20170407】

由于实验环境需求,实验代码调用了LibSVM工具包,所以今天配置了一下环境,听师兄说有点麻烦,还要用C++编译器进行编译什么的。于是在网上找了一些教程,基于前辈们的分享,本人进一步进行完善(编译的时候遇到一点问题,但是找到了对应的解决办法)。

1、参考网址:

== libsvm库下载:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

== 视频:http://v.youku.com/v_showMini/id_XMjc2NTY3MzYw_ft_131.html (有小问题,等下会提到)

== Rachel-Zhang:http://blog.csdn.net/abcjennifer/article/details/7370177  

== 编译问题:http://blog.csdn.net/buaasuozi/article/details/50781615 (下文具体介绍)

2、具体配置流程:

1)下载libsvm库并解压,得到相关的文件夹,此处版本为【libsvm-3.22】


2)打开Matlab(本文的版本为2016a)--> set path --> add with subfolders --> 复制libsvm-3.22的路径(E:\libsvm-3.22)

3)在Matlab中编译:

编译之前,确保你的电脑装了C++编译器,本文已经安装了VS2010。如果matlab版本太低,如matlab 7.0是不能用VS作为编译器的,只能用VC++ 6.0,此处建议给matlab升级吧!本文使用的是Maltab2016a和VS2010。

== 方法1:【mex -setup】编译,步骤如下:

A、在MATLAB命令窗【Commond Window】中输入命令:

mex -setup

B、此时可能会提示你输入更完整的命令:

mex -setup C++

C、按照教程输入相关的命令后,Matlab仍然给出警告(表示未编译成功),如下所示:


解决办法参考下文的“方法2”。

==方法2:【使用LibSVM提供的make文件】进行编译,步骤如下:

1)下载libSVM并添加到matlab的路径中(E:\libsvm-3.22)
2)打开matlab并将目录切换至libsvm根目录下的matlab,如:E:\libsvm-3.22\matlab
3)输入make命令进行编译,如下所示表示编译成功,生成相应的文件(如果make的时候出现问题,请参考下文的【问题集锦】):


4)拷贝上个步骤编译生成的文件到libsvm-3.22\windows文件夹下,替换掉之前的文件。
5)测试libsvm,步骤如下:

A、下载测试数据集:【heart_scale.mat】,点击这里下载【LibSVM工具包+matlab版本测试数据集

== C++版本的测试数据集:在Matlab平台上跑会出错。

== Matlab版本的测试数据集:本文选择此数据集进行测试。
B、执行命令:

load heart_scale.mat
C、 执行命令:

model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
D、 执行命令:

[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);


3、问题集锦:

1)【mex -setup】编译问题:

MEX configured to use 'Microsoft Visual C++ 2010' for C++ language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
 variables with more than 2^32-1 elements. In the near future
 you will be required to update your code to utilize the
 new API. You can find more information about this at:

解决办法,参考网址:http://blog.csdn.net/buaasuozi/article/details/50781615 

2)【make】编译问题:

Error: C:\Program Files\MATLAB\R2016a\toolbox\libsvm-3.22\matlab\make.m failed (line 13)
Access denied; check that you have permissions to access 'C:\Program Files\MATLAB\R2016a\toolbox\libsvm-3.22\matlab'.
=> Please check README for detailed instructions.

解决办法:
== 根据提示,很容易看出可能是执行的权限导致的问题。
== 以管理员身份运行Matlab,然后执行make

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值