TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
3#
发表于 2014-8-23 22:13
|只看该作者
|
|邮箱已经成功绑定
网上找到这个总结的不错,你可以借鉴!! s7 W1 ^8 A# y ?) [" B
1 f/ [+ M. `* { [5 T( V, T
在matlab上使用libsvm工具箱使用错误及解决方法汇总& A* ]+ _, ?, g9 g
首先附上使用过程7 E( d" ~5 \$ Y
step1: 输入>>mex -setup6 |4 J6 y- n& h: {' `7 {: S3 M
step2:; P! K% X/ t9 J. s5 \2 o
Please choose yourcompiler for building external interface (MEX) files:
8 p% t9 [8 ?' w Would you like mex to locate installed compilers [y]/n? 是否让matlab自动检测编译器可以选y5 k, C2 g1 @; J- |
step3:
) V8 z; R. u! f; z7 \ Select a compiler:
! X7 ? f# u2 `! H
8 l" t* f8 v% c7 e7 j$ f T$ q, S- [- N+ M' J+ V
[1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc
: {8 n% K# F0 l/ p- \6 Q7 k [2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0
. |# B, q/ Y1 j" E% P U( q [3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio
7 v$ V$ K4 w0 {7 ^3 s3 e; F [0] None
% Y0 ]7 i8 U- {8 C7 w0 h* J3 y [1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行
' Y0 i) X0 ?2 J 我选择了 【2】! l% |& I, q1 K9 k+ g
step4:
+ m5 k t2 Y: `9 C" X) U1 R7 U) W Compiler: Microsoft Visual C++ 2008 SP1 * i: q; [1 b9 Q7 d( |; u
Location:e:\Program Files\Microsoft Visual Studio 9.0
' Z, ]' M J6 Y Are thesecorrect [y]/n? 路径是否正确 是的就选y
- J* r* j* A& W/ I 如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。1 ?& x7 n' C0 O' t; T5 t6 I" t. O
Step 5 ! |/ |- | v) r1 @& F: e. U
Make
; o6 j% a$ K5 J9 S6 R2 @& f: H后面就是:: P; P! e1 x7 P9 A& ~
load heart_scale.mat(此处无分号)
+ |' p K) U) rtrain = heart_scale_inst;
. t. g7 |8 T P3 \! Q# O5 @ h0 xtrain_label=heart_scale_label;
3 S, ]# l8 V- F# u" K$ atest=train;
: {1 I( T6 m+ A Ptest_label=train_label;' R, ]! ~" A3 P/ F( r
model=svmtrain(train_label,train,'-c 2 -g0.01');
+ `! ^$ s* V- a5 }[predict_label,accuracy]=svmpredict(test_label,test,model);
9 l# p/ E% B$ M) d1% t8 W3 h2 m) I% c& k, ^
make这一步报错) v& e* H9 Q8 ^, W% p
Error using mex (line 206)3 d8 R6 l. f% A" z
Unable to complete successfully.9 K5 _% x) m& k+ W+ ]
Error in make (line 1)! d& W5 I+ _2 E6 u. g( u! g
% This make.m is for MATLAB and OCTAVE" K' Y! Y* @/ Y5 Z( M6 P& b
under Windows, Mac, and Unix
/ W# t9 x2 T2 |) d7 i" a在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~) P/ s7 b) ?) n m: x' D) T
' c6 Q9 Q* q0 i: u9 b( r5 n) N
2 还有一个make这一步出现的错误3 Make时出错* N2 O+ ?' M5 X* }# w/ ?9 A6 n
Undefined function orvariable 'make'
+ O" p9 k1 V3 |2 N解决方法为:
O$ u0 k3 w! l7 V0 a8 j设置matlab的path 8 t' X0 M# [" ]* v" `7 K
方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)( w; M! r! \" I7 r
还要记得把current folder 设为matlab所在的路径( U# _4 \( p6 \ f9 B K) j
3 输入load heart_scale.mat;报错) I6 m( I, ^- E. m' L' f8 h
Error using load
" b% t3 Y( _ T1 t* FUnable to read file heart_scale.mat;: No4 d% v& t% r4 Y4 y/ |; F7 K! w8 g7 H: ~# Y
such file or directory.0 C+ v. o$ q4 q! d$ v! s( f
这个问题是这样的,不应该有最后那个; 去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。), _$ f+ Y: M* O/ Y
4
2 e7 U q/ @5 h0 W( O+ u1 n& [load 这一步报错! l6 R! V/ {4 G m! E% B
??? Error using ==>load7 _) S( A$ u* m$ a4 \; l
Number of columns on line 2 of ASCII file D:\Program
% y6 F% M* ?" T, Q) X3 GFiles\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale
( i3 {8 [' Z8 B* H9 s7 Wmust be the same as previous lines.; i; K* |7 _: u8 H
官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)
. a5 F1 {: {& i& s% L2 p( A一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()' e4 |( q! P# u; k! d
使用如下: [label_vector, instance_matrix] =libsvmread('filename');: W! G$ V5 n7 w s0 E9 ]
此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');
; Z9 f% {6 k+ s注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。2 L# f5 @5 ? @/ n; q- G, L
但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!' O8 ~( D2 m c5 ^" \! a' P1 E0 ~
5 T) k9 N: v Y: m- _
) j2 ]4 r3 p: t& H( n9 _
4 a1 l( ~4 L+ W( v
9 ~/ f8 c( Z2 P: }9 V8 |5 到svmtrain这一步报错
3 f: g& w. ]3 J" s1 ]% r??? Errorusing ==>svmtrain at 172! E1 z; J, s. M# w$ x3 \! h
Group mustbe a vector.
6 X; o7 z" V5 |4 v是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了2 s, w: y6 ^ |" d% c0 V
在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱…… |
|