注意
下载使用的是 libsvm-mat,而不是 libsvm 。
1:配置路径
将 libsvm-mat 工具箱所在路径添加到 matlab 的 Current Directory 中
File-->Set Path...-->Add with SubFolders...
I,如果没有将 libsvm-mat 添加到 matlab 的工作搜索目录,则调用函数时会报错: Undefined function or variable 'XXX'
II,
当前目录 [Current Dectory/Folder] 是指 matlab 当前所在的路径。
工作搜索目录(路径)是指使用一个函数时, matlab 可以进行搜索该函数的所有目录集合。
2:选择编译器
(libsvm 由 C++ 编写,所以需要编译器编译成类似 .m 文件【 .mexw32 文件】,才能在 matlab 环境下运行; matlab 自带的 Lcc-win32 C 是一个 C 编辑器,不能用)
执行命令 mem –setup
是否让 mex 定位已安装的编译器,选择【n】
这个界面是各版本各种不一样,管它呢,能用就欧克了,选择【15】的 VC++6.0
确认本地安装的编译器是否是提示的路径,如果是,选择【y】即可;不是的话选择【n】,然后按照如下提示手动指定编译器路径
确认回车即可
【注意】编译器对应版本问题:
VC7 → VS2003
VC8 → VS2005
VC9 → VS2008
VC10 → VS2010
3:编译文件
执行命令 make
即运行 libsvm 目录下的 make.m 文件(在 Current Directory 中选中 make.m 右键选择运行也可以)
如果成功运行,没有报错,则说明 libsvm-mat 工具安装 successfull 了
4:验证
执行如下命令进行验证工具
load heart_scale.mat;
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);
5:错误集锦
I,C:\MATLAB7\BIN\WIN32\MEX.PL: Error: 'CFLAGS=\$CFLAGS -std=c99' not found.
错误原因:
1,用的是 libsvm,而不是 libsvm-mat;
2,编译器版本问题(网上提供,本人实验 VC6.0 也可以,这点仅供参考)
II,执行 make 命令报如下错误
Error: Could not find the compiler "cl" on the DOS path.
Use mex -setup to configure your environment properly.
E:\BIN\MEX.PL: Error: Unable to locate compiler.
错误原因:电脑里没有安装 VC++ 编译器,或者编译器路径指定错误
III,区分编译器(Compiler)和运行库
这些神马都是运行库,并不是编译器。