TA的每日心情 | 奋斗 2024-7-1 22:21 |
---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
3#
发表于 2014-8-23 22:13
|只看该作者
|
|邮箱已经成功绑定
网上找到这个总结的不错,你可以借鉴!
; Q/ |: J$ [9 }# ?7 \! N* a5 p0 U1 Q6 k" ~7 V
在matlab上使用libsvm工具箱使用错误及解决方法汇总
# ^& _! I& h5 a7 e3 }首先附上使用过程5 d" i* T; b3 X2 q
step1: 输入>>mex -setup
. ~1 B; {% b6 E; x) w4 {9 l* C( H6 L( m step2:* z! S b7 O. x7 \9 O# y5 {' b
Please choose yourcompiler for building external interface (MEX) files:
4 Z& z1 D5 P/ z! I Would you like mex to locate installed compilers [y]/n? 是否让matlab自动检测编译器可以选y# k# P: a$ f. a- y8 j0 s
step3:$ S7 U% y2 W7 C S- Y# V
Select a compiler:6 H V3 i4 Z4 s2 d T" `
# ~( n; g1 H1 Z' Z+ t6 i9 x$ f/ [
3 j& r! _% m. J/ w" C [1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc
6 k! c% O- R; q: D7 [- K5 w [2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0
2 f( ]- z6 C: R2 r [3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio 8 A1 v8 {3 i( { y4 [2 l6 o
[0] None # @- Y( q5 }" A( Q; X+ l
[1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行 9 s( O6 S$ Y8 h6 }' M0 e: s3 g
我选择了 【2】
7 F) B$ Z. K! L step4:
; h8 a. r* k1 x- C% h( E6 g Compiler: Microsoft Visual C++ 2008 SP1
4 E& Z* y% X* i/ I9 D Location:e:\Program Files\Microsoft Visual Studio 9.0 % ~+ ^" \( r2 ^
Are thesecorrect [y]/n? 路径是否正确 是的就选y . r7 p& [2 h" V0 B
如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。
* U1 e' C* ^# {3 XStep 5 ' f) l7 O l$ M
Make
" x2 n# A2 m/ [7 }! o" u8 [后面就是:
7 w/ Z5 E" X/ F: D6 }load heart_scale.mat(此处无分号)$ f f7 e3 J* m( c: V1 p
train = heart_scale_inst;
( H5 f% l, c" Q* ktrain_label=heart_scale_label;
# w6 p/ ?+ k& H6 C+ ^% Q/ wtest=train;, H$ t/ v8 U& \6 D1 J
test_label=train_label;
2 R# l, t: V* ]# G& v% }model=svmtrain(train_label,train,'-c 2 -g0.01');
& P2 w b6 m) P* B3 a8 Z7 l0 ^# ], {% ]- ~[predict_label,accuracy]=svmpredict(test_label,test,model);
( T6 M( W% F1 X3 c& G3 E1
2 D" x# T- k% K1 M+ ymake这一步报错
" ^" b, k% Y( k% X" y) F! `; B7 y5 u3 H8 p* GError using mex (line 206): S6 c2 `3 K- K/ i+ ~, d6 p; i
Unable to complete successfully.
9 H3 a1 H* K4 @/ uError in make (line 1)
* D2 l% @& O" m9 Z. k% This make.m is for MATLAB and OCTAVE
! |9 s: s8 t- ^under Windows, Mac, and Unix% D/ `3 X! f$ } N
在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~
3 }, P7 K# H) z5 A/ r
# t* B9 Z' e) y) O9 Q- m8 A2 还有一个make这一步出现的错误3 Make时出错
9 K* Z: D) V; B8 zUndefined function orvariable 'make'0 s; U9 v; a9 K$ A- `
解决方法为:
4 c( w! [$ y5 I/ B4 a! C p设置matlab的path
; q! M, m/ I$ \" J: N1 N) L" F$ [: U 方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)4 [: M2 J4 n' P u
还要记得把current folder 设为matlab所在的路径
- g4 V. M4 ]( O3 输入load heart_scale.mat;报错
2 ?6 }$ c( i1 E K4 x" CError using load
% z% o. ~+ k+ Q( z: t) ]Unable to read file heart_scale.mat;: No
7 p8 y( ^+ a. D! D8 Gsuch file or directory.. G- q* `% V8 }7 x* D
这个问题是这样的,不应该有最后那个; 去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)$ p( [" I# Y% l: Q: {0 Z4 w4 u+ [
4
) w/ B' s/ F3 }$ a$ N1 Wload 这一步报错- Y$ J0 U3 ~$ s( Q% c. ]
??? Error using ==>load. S6 ]' g( `$ j2 C! S P% M0 U
Number of columns on line 2 of ASCII file D:\Program
6 z- ~1 E, y7 x. E0 p. fFiles\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale( e* ]1 R3 w1 S& z; ~
must be the same as previous lines.; Z' V |/ l9 P
官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines), ]0 ?. B$ a3 P0 D0 S6 @4 O
一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()( z5 v6 }% S' `% |' O1 {7 C7 M
使用如下: [label_vector, instance_matrix] =libsvmread('filename');$ U+ J4 N+ r8 d+ ]$ m! [" R- f/ Q
此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');9 e% N% G) k3 D5 k1 o4 b: Q& z
注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。
! L# D& f/ s* L/ l! x但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!
4 a$ A" @7 U6 O- `, S
5 P: r" [6 Z* w8 e1 |
; u1 G% N) Y l! H; L& H- a8 Q/ y( ]& y6 d$ q
- ^! Z0 y# y `7 Z& H5 到svmtrain这一步报错1 I8 { l. r8 n$ h7 v1 r8 d t
??? Errorusing ==>svmtrain at 1728 s) u# s$ w F6 Q2 W
Group mustbe a vector.
* F& Y2 ^! ~$ W: Y1 E是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了
! h8 d# F2 m1 V. w* X在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱…… |
|