TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
3#
发表于 2014-8-23 22:13
|只看该作者
|
|邮箱已经成功绑定
网上找到这个总结的不错,你可以借鉴!
1 X3 x" o1 I s2 A3 b7 D; B3 ]
5 w& s1 ~2 B5 M' c7 D+ e: D0 ]9 q在matlab上使用libsvm工具箱使用错误及解决方法汇总
" J- X5 V+ ~7 x g' L首先附上使用过程
$ ~6 W' {8 j/ W1 Y4 r. estep1: 输入>>mex -setup
8 O B# E: p$ Q- x! G, p: {/ W/ B$ B# D step2:
9 |( J& p. W5 u: H2 M9 K5 _ Please choose yourcompiler for building external interface (MEX) files:
. i$ Z' p" \$ e2 U) p. n/ F Would you like mex to locate installed compilers [y]/n? 是否让matlab自动检测编译器可以选y7 _2 h/ [5 [- j0 \6 P, H- Y
step3:
8 b6 B8 N- h2 E; w2 P2 x Select a compiler:
* w/ {3 U, e# _( N$ S3 _8 `6 X6 X5 S7 f1 Y! _. p9 B% p" c
4 H* {5 k6 k2 `9 c/ j [1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc ^: \3 y7 j9 m4 w
[2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0 ' I& P# |: e; q( d
[3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio
, [# \/ N8 Z* C2 p- t: R [0] None $ i# U8 F2 l, ` l7 m9 b
[1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行
. v L& _5 {9 [2 @ 我选择了 【2】7 |1 @' A1 m# e$ a
step4:
/ M; ^1 q: R9 h7 f Compiler: Microsoft Visual C++ 2008 SP1
# I p: |% |7 p, | Location:e:\Program Files\Microsoft Visual Studio 9.0
0 {3 W5 ]: R# w) S6 g( a( s Are thesecorrect [y]/n? 路径是否正确 是的就选y , K4 R6 g( s9 E3 N1 z- i4 ~; S+ y/ e! W
如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。
% q* ~" G6 A# S+ o& p* ?Step 5
9 z! \6 i8 @6 N0 j$ E$ MMake* `" g0 |6 L" z! d
后面就是:
! n4 U( I9 H6 nload heart_scale.mat(此处无分号)
! |, k7 ^& O, H$ etrain = heart_scale_inst;! j* ~* M. S4 ^5 d
train_label=heart_scale_label;
- {# W# G, \' Itest=train;' P* U1 Q$ q$ D! l( l; ~
test_label=train_label;" y% V, _$ ~' c8 v4 \1 |
model=svmtrain(train_label,train,'-c 2 -g0.01');
: _) V. M7 A* m0 G6 o) @[predict_label,accuracy]=svmpredict(test_label,test,model);
0 V5 P. _8 ?# s1
: U( f, u8 C+ ?3 Fmake这一步报错/ i' U* g+ Y$ R
Error using mex (line 206)
. h8 |" J! A& M2 E( hUnable to complete successfully.5 y& ` U7 Q5 g# s9 d
Error in make (line 1)
6 t. _9 O0 f0 y e7 o' X% This make.m is for MATLAB and OCTAVE; L, C7 W! @- p+ F
under Windows, Mac, and Unix
4 w, c% D" ]' g) U- d在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~
/ P) z2 f; P: d# W) A4 o% f( n
3 x P0 I: `" A' U" ^, \2 还有一个make这一步出现的错误3 Make时出错. c( g6 m6 n- ^( M7 u$ G
Undefined function orvariable 'make'
* D( H" u5 X4 Q7 D( R8 \9 P解决方法为:
1 J, P8 s% C, P0 b ~设置matlab的path
' ]) @8 Z8 l; g i* N* m2 {% v 方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)/ h- P6 V- ] b6 U) F2 m
还要记得把current folder 设为matlab所在的路径
# H0 `+ P+ S, E) p; x: V: \3 输入load heart_scale.mat;报错
! I1 U. B/ X' p+ x: KError using load
& s% {, j# K6 q2 z( C, c% cUnable to read file heart_scale.mat;: No- ~. k( s7 L& o) Z" H
such file or directory.
( `4 i1 W! Z( r这个问题是这样的,不应该有最后那个; 去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)7 x. a: x' ^* z+ z8 }0 }8 u R
4
5 V( Y7 ], s4 ]/ a4 E1 G4 \) u' @& f/ ^load 这一步报错
$ n- l* z3 h$ \$ f" D??? Error using ==>load
$ N6 d* P. F/ J) v" vNumber of columns on line 2 of ASCII file D:\Program
7 A* G/ [$ G" E# i8 OFiles\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale
( i/ q( z& D! ?0 E4 H) y$ G1 A ^# nmust be the same as previous lines." X* n+ K- C/ v$ c" \4 q7 c% e0 p
官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)5 e0 x, [+ g/ K, t$ l
一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()
. _1 K5 ?2 U4 j7 ?/ @8 J使用如下: [label_vector, instance_matrix] =libsvmread('filename');; C; P3 J' u4 o8 y% }$ R. Y# t
此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');( ?% P/ Z( [; b- `* e2 d. ]) w2 O
注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。
2 L+ n5 O' ]/ R但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!
; B" s5 w6 N# T6 L* |3 G$ t' `3 [: j u- P' p* B
" _6 F8 G0 U. l2 z3 c0 R9 u' o# a: R
* l7 P8 n+ y$ H# y) g5 到svmtrain这一步报错
2 V# D* h* v+ B# \9 q??? Errorusing ==>svmtrain at 172
0 t$ J; C( K+ O; G& Y" pGroup mustbe a vector.; A$ Z( r" _/ x2 \' l
是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了# N: x- U0 b) ^1 D- z
在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱…… |
|