TA的每日心情 | 奋斗 2024-7-1 22:21 |
---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
3#
发表于 2014-8-23 22:13
|只看该作者
|
|邮箱已经成功绑定
网上找到这个总结的不错,你可以借鉴!* O1 {1 q, z! Q4 s, v
! H. l* G& m$ y" [6 S- y7 b在matlab上使用libsvm工具箱使用错误及解决方法汇总
X. }7 O6 O; X' D" L% o首先附上使用过程
2 u/ I \$ o0 i! estep1: 输入>>mex -setup
$ K+ g0 O. P$ j step2:
3 m( `3 e Y" V( E. _4 [ Please choose yourcompiler for building external interface (MEX) files:
( B0 B) K2 }' H+ O, I# L Would you like mex to locate installed compilers [y]/n? 是否让matlab自动检测编译器可以选y
3 ]. s/ _8 Z8 @+ l6 B step3:" b. [, _2 e; @& C! x$ I# j
Select a compiler:
, R' c: t" C$ _ f: B2 ^9 {: @) y! N9 d- z2 q2 z/ n. z! V
0 i( x: K5 m6 v [1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc 3 X; c& |/ }5 j* O
[2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0 8 t6 l. e7 u B4 c1 A) v E. m
[3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio 3 k* S% \$ ?) f6 j
[0] None ; _' T& ]" e6 s/ }3 \- N
[1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行 + T' u3 `8 i7 @/ k8 U* Q3 `1 Q; E
我选择了 【2】: ~: m3 v; d6 C4 b/ o
step4:7 n# s( x. @1 Q. X/ k. Z' _- _: c! r6 T
Compiler: Microsoft Visual C++ 2008 SP1 4 s9 O& H( W3 o$ u) C
Location:e:\Program Files\Microsoft Visual Studio 9.0 0 d$ B6 Q0 R( a: S* q8 i$ j" ^4 S
Are thesecorrect [y]/n? 路径是否正确 是的就选y . O$ v0 a3 c. s2 P
如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。8 b' u* I; M* k2 {6 q
Step 5 8 ]2 j4 r4 q4 S- w3 s
Make1 W Q$ f# J5 Z- ]: }) P
后面就是:
8 k" ~7 p- p) I' Uload heart_scale.mat(此处无分号). C- M+ y) m( N! f* p T# l% q6 p
train = heart_scale_inst; _7 M7 m7 q9 b. \
train_label=heart_scale_label;1 w! @/ Q8 Q7 F' F" F
test=train;% r3 y( U; d3 h$ w2 G
test_label=train_label;
* w3 P& n" i& O6 |) P! x3 Qmodel=svmtrain(train_label,train,'-c 2 -g0.01');
* Y. S2 _3 f4 _) W[predict_label,accuracy]=svmpredict(test_label,test,model);4 V1 ]; |% B' M
1- C8 ?* k! }! a3 u# a, x- c: U" Z% B
make这一步报错
4 l/ Q, Y0 f! ~% WError using mex (line 206)
5 T0 G. ` L& n+ p: k. lUnable to complete successfully.2 G& v" t5 N/ m+ S t2 H+ B4 e# C
Error in make (line 1)
# C5 K0 [9 Z5 f& ~/ d* Z% This make.m is for MATLAB and OCTAVE
4 R$ N4 {0 T X4 {" s6 A' lunder Windows, Mac, and Unix
' U( n0 ?" z7 G7 {! \: n/ B4 ~在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~5 T7 P& n( a" d W! d- h" A
: l+ J9 V4 S8 ~* H% M7 `2 J2 还有一个make这一步出现的错误3 Make时出错7 C& f" j9 |, U! e$ |8 J/ ?+ K: D$ Z0 |
Undefined function orvariable 'make'
, o6 r, C i% ~* ]6 ~* r解决方法为:/ r- a) Y7 D) i8 x, @( O
设置matlab的path * O5 _$ T! ]# X1 m! n, H
方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)8 a! n4 Q2 T3 j" E0 Z- {
还要记得把current folder 设为matlab所在的路径
8 [0 I1 D; w& E& J# q3 输入load heart_scale.mat;报错3 }# }& F5 f6 l2 L+ w' P
Error using load
2 V# o4 {( c! ?Unable to read file heart_scale.mat;: No- C+ S+ l" B' R5 p/ z
such file or directory.& e3 }) Y' N+ x; { `
这个问题是这样的,不应该有最后那个; 去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)
2 R: i0 F9 n7 B/ i' K+ Z9 @4
& O% _+ f" {' L; C0 L% p5 b" y$ H6 G; Oload 这一步报错 Q7 N/ j* _( _: A: Y b; ^
??? Error using ==>load4 i& J6 q+ x& h+ P3 F
Number of columns on line 2 of ASCII file D:\Program# l) K- C6 s9 H
Files\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale1 E+ T6 [# q* J
must be the same as previous lines.
, r/ X, _0 }+ W: | X- P官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)
$ L4 m/ j# H" Q4 V( t一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()1 f) Z! j/ I5 y( _ K0 Z d
使用如下: [label_vector, instance_matrix] =libsvmread('filename');% B0 D' k0 y8 m. _% u
此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');* f1 p. n) m8 w
注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。
' c4 w; |$ h# W3 J6 S但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!
5 b7 c) w8 n$ f1 L% E6 J4 z5 D; f& K7 }/ O, v* `( J
3 d( l$ @# X% a- k2 m
$ ~9 @1 A0 ^* s) d! c d. S' C4 U
! @: h6 T4 m' }) @, b5 到svmtrain这一步报错
8 T% H: l/ q& m9 T7 s??? Errorusing ==>svmtrain at 1727 X, y f$ Z! ^" t2 h
Group mustbe a vector.$ }4 G8 s0 Q8 a: z x: _
是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了; F& f1 g4 s. E+ F, G
在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱…… |
|