TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
3#
发表于 2014-8-23 22:13
|只看该作者
|
|邮箱已经成功绑定
网上找到这个总结的不错,你可以借鉴!/ k7 a" p# |8 V' D8 s" A/ Q
1 b2 O _; Y( a在matlab上使用libsvm工具箱使用错误及解决方法汇总
0 m0 o$ g$ d2 z F首先附上使用过程
# C5 a; B4 e7 W- W& w) q$ Nstep1: 输入>>mex -setup' m7 x9 ^$ A, \, }- X
step2:3 _) i+ [: }9 M1 c# R
Please choose yourcompiler for building external interface (MEX) files: ( N+ W0 |* L6 |1 C6 S8 M5 A/ ]
Would you like mex to locate installed compilers [y]/n? 是否让matlab自动检测编译器可以选y
( R$ Z" f% z5 b. G2 G! b3 U step3:
3 _! N8 O, j# h& ] Select a compiler:
/ l- t6 L; H0 G( }
/ H/ w, f# ^) G! ~' W! S
% W8 | p- O+ h5 h- m2 a) v [1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc - i1 c/ d# S2 k9 I5 f
[2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0 % q- Y( a- A' r% V9 c6 s) G5 c' J: q
[3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio - Y/ |0 h$ ^, |- j) {
[0] None 1 x4 x% o/ r5 u1 M# r0 Q
[1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行 . i7 g; [- p2 W/ @3 }! g1 g
我选择了 【2】/ V J0 z4 ^- k
step4:0 d( X( h7 X' @6 L
Compiler: Microsoft Visual C++ 2008 SP1 2 z" n3 S2 _( Q" V7 |4 C
Location:e:\Program Files\Microsoft Visual Studio 9.0 ' V6 q8 D. g# O! V" @1 \- X
Are thesecorrect [y]/n? 路径是否正确 是的就选y / s' i: R7 V) |8 @9 \& r
如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。
' s6 J4 x8 c5 f+ E) k, Q/ u% WStep 5 X( _: H, U5 R: G
Make; y( h" t! `% G1 }5 w7 O, m6 `
后面就是:
. @6 T4 H+ x/ ^* Sload heart_scale.mat(此处无分号)
# ^2 K: l0 l C. ]train = heart_scale_inst;
1 K/ z! z" Z' j$ A8 G# y" mtrain_label=heart_scale_label;
4 }/ h1 `& h9 e8 }" V5 itest=train;
4 M$ F5 w3 F! p D+ U/ Ntest_label=train_label;' V+ y' z8 |2 m8 ^% f7 Z y
model=svmtrain(train_label,train,'-c 2 -g0.01');$ y7 O& `" `" e. g/ S z$ n
[predict_label,accuracy]=svmpredict(test_label,test,model);
! o, `5 d/ u+ }4 a1 a1+ \1 W' l' R0 @. {: v
make这一步报错, ?% N; \/ W7 l3 G$ Y
Error using mex (line 206)
1 ~" @: Y! _9 s5 t5 kUnable to complete successfully.& Q- g ~2 j1 p% F. e6 k; h
Error in make (line 1)) Q# t2 @6 k& j
% This make.m is for MATLAB and OCTAVE( [' t6 ^, A! S6 Z# }
under Windows, Mac, and Unix
$ E7 |5 M2 m, F: L5 Q3 k8 V% S在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~
% Z0 _" W; ]: Q0 ?
( q* A8 U1 j) S3 j9 q2 还有一个make这一步出现的错误3 Make时出错0 v+ m1 y4 l3 h, u: ?: M
Undefined function orvariable 'make'
# M# s: r# h4 t9 X解决方法为:
& z! y& {; c: @( n设置matlab的path 5 P6 E) {" m2 S; i0 r+ A1 H5 U
方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)
2 D- y( ?( ]5 t5 W6 B1 A还要记得把current folder 设为matlab所在的路径/ t2 C# [: J* _1 D2 Z; _
3 输入load heart_scale.mat;报错' Z! c( ?$ g5 z* S7 u9 X
Error using load2 e3 J' J9 z" y3 a! s* Q' R
Unable to read file heart_scale.mat;: No# H3 g' y$ Q6 O: W' j
such file or directory.
L9 \. L& K* e& f5 T6 v' {这个问题是这样的,不应该有最后那个; 去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)9 m9 l0 Q2 }* m a9 ^0 D& d8 |
4
! I' D3 C: O- Kload 这一步报错5 \/ `7 [. J T: s% W$ F( p; u$ M
??? Error using ==>load
2 h( j$ F$ {% oNumber of columns on line 2 of ASCII file D:\Program/ ~- p: {# O1 T0 y
Files\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale
" l) b3 L" R% d; d* X9 ~2 ?must be the same as previous lines.
( i" o9 e: i. e" E, V. x/ V( p官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)
e& n: U5 a. b& t$ x6 q% z: C4 ^一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()- s' W# k) N# ~
使用如下: [label_vector, instance_matrix] =libsvmread('filename');
0 K4 O! p* G1 M3 j( n9 P$ C& E& k# `此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');
1 E* p- v7 b6 R" }% T8 j& H注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。8 l) ^' U$ s2 O; C5 d
但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!" }) @9 b& g; x; R5 O- @& v+ l6 K
1 o( h1 o. Y( l
# Z: Z6 a7 T, V0 j) ]" J; i' y: L# M+ ~/ w# o8 s3 P
+ Q' O. a3 R- x- d7 X
5 到svmtrain这一步报错. r2 ]0 F$ @) l2 r Y
??? Errorusing ==>svmtrain at 172* X8 s" c! _! m/ o0 _
Group mustbe a vector.
& O% T2 @' G: f& ~& i/ k是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了
- N2 @- v" r% ~! v; @+ A; S6 X在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱…… |
|