TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
3#
发表于 2014-8-23 22:13
|只看该作者
|
|邮箱已经成功绑定
网上找到这个总结的不错,你可以借鉴!1 D9 o+ w7 }% l, R0 K
# a: W' B i7 G在matlab上使用libsvm工具箱使用错误及解决方法汇总4 y9 V0 ]4 D2 |2 t/ {% I5 u* a9 b& v
首先附上使用过程: S2 X' b8 C' J) A" o, B) \5 q8 p) z
step1: 输入>>mex -setup4 ^* n8 s6 u3 M- v) _
step2:% C* c9 g/ p' _. S
Please choose yourcompiler for building external interface (MEX) files: " B" W8 a: y1 T, M4 m) o8 V3 [- k
Would you like mex to locate installed compilers [y]/n? 是否让matlab自动检测编译器可以选y
! ?$ C# r3 H4 p( j1 w& `. p step3:
8 c* H, P' L" m7 n8 m0 d7 [$ [$ \ Select a compiler:3 n' w1 j1 w+ l; j+ L! L0 v
0 s2 o3 f' q h: Z+ f! \# E0 u3 n
[1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc
1 u% N& ?+ ~# Q; W1 H! ?% ] [2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0
( i0 R$ ^+ h g- h [3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio
" U. r' y( T0 _, i [0] None
& F$ h) v5 P \* a5 _; C1 f2 C [1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行
5 T4 Z3 @6 f2 z; Z# ?+ W 我选择了 【2】
' L) I5 ]/ v8 ?, D1 S7 a step4:
2 B- p: b, `* y" D: F7 ~ Compiler: Microsoft Visual C++ 2008 SP1
h) b, D9 C7 x: f3 w: ~ Location:e:\Program Files\Microsoft Visual Studio 9.0 6 C5 T; w% M2 K9 w) Q6 K1 q0 v+ a
Are thesecorrect [y]/n? 路径是否正确 是的就选y & i5 T/ D- H9 { p1 g9 Q9 H
如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。! T0 I8 A3 ~7 s6 l
Step 5 - A$ f [" n6 c/ C6 M$ \8 d/ R
Make
$ k. t7 @; d9 `后面就是:
% x0 x8 p6 {. uload heart_scale.mat(此处无分号): M+ o/ e+ _" D0 ^4 H
train = heart_scale_inst;
( v: P' _6 [/ Y, Q0 btrain_label=heart_scale_label;" R1 B, W7 b8 ?
test=train;
: v- ?$ n& K b+ T) Stest_label=train_label;
+ j, c3 ]- m% ], }# ]9 _model=svmtrain(train_label,train,'-c 2 -g0.01');. k: Y( g! T* _
[predict_label,accuracy]=svmpredict(test_label,test,model);4 |1 f5 L$ D$ w M% b6 q; n
11 X9 G! @5 g/ a' m
make这一步报错1 i1 G1 V) d& k3 o9 Y
Error using mex (line 206)4 L R% h" w1 A( I
Unable to complete successfully.' X# `3 P! P. d" @. z' e- S
Error in make (line 1)( g, s- D4 n2 L! f5 H
% This make.m is for MATLAB and OCTAVE4 e! C; `. `+ c" J
under Windows, Mac, and Unix! S8 V. J( l1 n7 O& `' ?$ [) ^$ Y
在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~( I9 E v; ]: c1 d% A2 C
2 \% ` H9 ~" v
2 还有一个make这一步出现的错误3 Make时出错
! v1 V: ]/ K5 KUndefined function orvariable 'make'
) F8 a$ Q' e8 C9 y解决方法为:
+ M5 X4 k1 z% A2 m: O设置matlab的path
; @0 D r+ D2 J0 ?% Q7 R P/ g W 方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。). @5 f/ P+ X j5 o3 {6 Z$ u B
还要记得把current folder 设为matlab所在的路径
1 H* a* m1 f8 l. Q- r+ m* I7 ]/ Y3 输入load heart_scale.mat;报错4 ` I4 d. v8 z
Error using load6 c) J8 V7 g# f7 s# @' Z/ ~* \
Unable to read file heart_scale.mat;: No) x. L: f, J) M6 H; Z9 i( V
such file or directory.
$ I N# ]; i: S8 \/ T( i! T这个问题是这样的,不应该有最后那个; 去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)
3 I/ i" o, c5 \5 D; L( {0 j4( g7 u* H4 ~( f
load 这一步报错
7 s6 [3 x, _4 [: _# W' ?9 N7 C7 C% d??? Error using ==>load) C' u% Q: |. O: T7 Q
Number of columns on line 2 of ASCII file D:\Program
9 R2 G c: m# Q6 K, h `: H2 MFiles\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale7 _8 w4 I5 x! \, T# _" w2 M; y% P
must be the same as previous lines.
8 {2 U, P8 t1 M* J- X3 Y8 i官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)
. Z5 U* ^, C v. m* Q# G一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()% g+ P- ~7 e0 x7 P3 v) M1 O' H2 [
使用如下: [label_vector, instance_matrix] =libsvmread('filename');: V5 y- r- s, Y, v) X2 {
此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');
1 ~3 G( f \1 m注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。9 o2 N* F8 Q3 H2 q, z' l! e. r
但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!
u$ [1 W0 l& M( j" K) z7 X7 y7 [8 @% Q0 d! p; a
$ c# F% R) Q5 r4 Q! U' K) ?& G0 E, o) Z& o4 q* u
+ G( z- y+ x1 O* c, u5 到svmtrain这一步报错( t* S- }/ D9 y- q A' ]. @
??? Errorusing ==>svmtrain at 1728 W6 M0 E' P% \" y3 E/ A# g l
Group mustbe a vector.
* T# W1 F& Q, d9 R/ Y1 W是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了
1 Z, D+ R" H) k/ s在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱…… |
|