发布网友 发布时间:2022-04-23 21:14
共1个回答
热心网友 时间:2023-08-28 12:04
我的libsvm 版本为目前最新的3.12版本,matlab版本为matlab R2011b,c/c++编译器为vs2010。提到c/c++编译器是因为matlab下安装使用libsvm需要c/c++编译器,具体matlab支持哪些版本的编译器,可以到matlab官网上查询。
安装配置过程具体如下:
1、设置matlab搜索工作目录:file->Set Path->Add With Subfolders,选择的目录为“..\libsvm-3.12”,选定后,点击save,然后close即可。
2、设置matlab的当前工作目录:设置Current Folder为“..\libsvm-3.12\matlab”。
3、选择c/c++编译器:Command Window里面输入mex -setup,当出现提示:Would you like mex to locate installed compilers [y]/n?时,选择y,接下来就要选择编译器,我这里出现的选项有:
[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2011b\sys\lcc
[2] Microsoft Visual C++ 2010 in d:\Program Files\Microsoft Visual Studio 10.0
[3] Microsoft Visual C++ 2005 SP1 in E:\vs2005
[0] None
我选择了2,出现提示语句:Are these correct [y]/n?,继续y之后,如果编译器选择成功,会出现:
Trying to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2011b\mexopts.bat
From template: D:\PROGRA~1\MATLAB\R2011b\bin\win32\mexopts\msvc100opts.bat
Done . . .
3、编译:输入make命令,系统会生成如下4个文件:svmtrain.mexw32,svmpredict.mexw32,libsvmread.mexw32,libsvmwrite.mexw32。完成~
4、测试:使用 [heart_scale_label,heart_scale_inst] = libsvmread('../heart_scale');生成测试数据
model = svmtrain(heart_scale_label,heart_scale_inst);
[predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);
model =
Parameters: [5x1 double]
nr_class: 2
totalSV: 132
rho: 0.4245
Label: [2x1 double]
ProbA: []
ProbB: []
nSV: [2x1 double]
sv_coef: [132x1 double]
SVs: [132x13 double]
accuracy =
86.6667
0.5333
0.5326
测试通过,说明libsvm在matlab中已经可以使用~