sub指令错误matlab,求助:关于混合编程的错误,用mex编译就出现 - MATLAB 应用发布

网上找到这个总结的不错,你可以借鉴!6 Z; b- ]$ {, G2 e

( q7 z/ ]/ a; V; W, n$ Y" |$ A

在matlab上使用libsvm工具箱使用错误及解决方法汇总

1 F3 h; `) A* G8 Z! o首先附上使用过程

) A2 g" ]: L9 L+ Vstep1: 输入>>mex -setup

* v/ v$ H( d, e% z2 U   step2:

( `) R8 M6 Y( y1 `* D0 l6 z   Please choose yourcompiler for building external interface (MEX) files:

. W5 _, U0 {5 Z7 S; L   Would you like mex to locate installed compilers [y]/n?        是否让matlab自动检测编译器可以选y

8 x2 q+ h5 a( l! D# q; U  step3:7 c0 S: \4 {# M

Select a compiler:5 Y; ?$ u; Q- y* `  [

6 N5 z9 G' E8 ]9 \: H. }, ^6 k' A

' G( c  ^5 a" h5 d  c     [1] Lcc-win32 C2.4.1 in E:\PROGRA~1\MATLAB\R2010a\sys\lcc

) ~* |" _2 D9 L     [2] MicrosoftVisual C++ 2008 SP1 in e:\Program Files\Microsoft Visual Studio 9.0 ' Q% c* Q0 Q: ]1 Q4 {' u

[3] MicrosoftVisual C++ 6.0 in E:\Program Files\Microsoft Visual Studio : A6 H' q# k& G! j/ S! i

[0] None

! v; K) b5 G' ?& q* r     [1]matlab 自带的不能用 其他的如果有的话 就相应的选择就行

' O. C: s% v& r& ?! {& u     我选择了 【2】

" U7 C+ C  z( R" H& a    step4:

: d/ c( H( ~1 U     Compiler: Microsoft Visual C++ 2008 SP1  / o. p1 ?4 O6 u  `3 c4 t8 W5 Y# D

Location:e:\Program Files\Microsoft Visual Studio 9.0 1 \- y. I5 R/ M) M& Y

Are thesecorrect [y]/n?  路径是否正确 是的就选y

5 @* G& k* ]7 `6 r9 G1 |: _      如果没有自动检测出来依次的话step2就选【n】就可以,再顺着提示下来。3 d5 x! b. c. G0 o8 L1 J

Step 5   8 C' I0 }# e6 _' a. R& _  h9 o* h

Make1 C& A0 e" ~, Z4 W* L

后面就是:9 `4 x1 |1 \9 _& t

load heart_scale.mat(此处无分号)5 z+ ?) w4 _8 n& ]; c

train = heart_scale_inst;

b7 S; c0 q4 V' F0 O  W/ Xtrain_label=heart_scale_label;

. ]8 i& j3 j1 R( K5 ?5 Y. N6 Ltest=train;3 e4 t/ q/ S8 o$ k' u: y* N

test_label=train_label;& v1 X7 y( g' h1 y7 s

model=svmtrain(train_label,train,'-c 2 -g0.01');. m9 |5 ~% @  B  L% ~

[predict_label,accuracy]=svmpredict(test_label,test,model);

& J- p9 D* d( f: r: G1 h1- W- p' y# k5 m8 f9 K- J8 a

make这一步报错! }" i' u$ e" X( j- P

Error using mex (line 206)

) c' |3 M+ G- A. h8 F+ i" `7 hUnable to complete successfully.

) f  r( v$ \& U9 ZError in make (line 1)

/ P: z3 E' Y1 W# B% This make.m is for MATLAB and OCTAVE

3 @: O" K# a; D! m# i+ x% Eunder Windows, Mac, and Unix/ _$ \. f9 i7 K9 [

在尝试了许多方法后,竟然是换了低版本的libsvm,搞定了~~~

1 y, m! l- S9 r! i$ z! k/ Z; G( _$ s. X

2 还有一个make这一步出现的错误3 Make时出错

5 Q. U4 e3 A" [  oUndefined function orvariable 'make'

. l4 e) U0 c/ ^$ Y7 X2 B. u解决方法为:

" l  z. z$ p& D设置matlab的path : B6 D! _* Y; |& R7 x% g

方法file->set path->set subpath(为什么要sub path因为只有这样才能将你要加的文件目录的子文件都加进去,否则只是加了你所要加的那个目录。)

0 ?$ ^8 `" m* v" x5 q; f) B还要记得把current folder 设为matlab所在的路径5 r+ F7 D# i& a  M$ ^

3 输入load heart_scale.mat;报错+ m  |" d2 Y% o! f  I6 h

Error using load

- V) ^$ |2 y" k# L. g! LUnable to read file heart_scale.mat;: No

+ K& u( K6 s7 C- e# n: @. E( bsuch file or directory.

9 J- Q6 N. j. \( D0 @3 C$ Y这个问题是这样的,不应该有最后那个;   去掉分号就可以了。。。(粗心所致。。。不知道别人会不会像我这样。。。)

- [1 S% |9 e! v' _% P4

$ T$ u3 y% k# d/ Yload 这一步报错

' @, B1 j! N/ }/ t??? Error using ==>load

0 t- y+ |% E4 X) S2 cNumber of columns on line 2 of ASCII file D:\Program' O5 q' h: y3 X* }

Files\MATLAB2010\matlab\toolbox\libsvm-3.13\heart_scale- g1 o, `! |7 v9 `* d: ^

must be the same as previous lines.

$ \# n, L8 u9 A; ^/ {2 B3 D官方现在不给heart_scale.mat,给的都是VC++下的格式。一些旧版本的工具箱还可以找到mat文件,新版本都没有了。所以load会报错:heart_scalemust be same as previous lines)

* Z. C& D/ {3 ?4 o) Q' r+ W一种解决方法是:使用给的一个函数,转化数据。此函数为libsvmread()

! R$ Q7 K! c/ X- `# N* w使用如下: [label_vector, instance_matrix] =libsvmread('filename');% t4 p* ^  _# P9 r7 h" \% r

此处为了跟官方统一名称可以[heart_scale_label,heart_scale_inst] =libsvmread('heart_scale');2 r, W+ w& F; U. W; |

注意:由于heart_scale在libsvm-3.11目录下,不是在matlab下,所以直接用libsvmread命令会报错,要买改变当前路径,或者使用[heart_scale_label,heart_scale_inst]=libsvmread('../heart_scale');../代表返回上层路径。

+ P4 [# y7 s4 k6 F, a但是最简单的方法是,找到旧版本工具箱的mat文件添加上即可!* ?9 ^+ Z2 _+ f& q+ h0 v) ?6 N' {

/ c4 x5 ~9 E( E1 i0 Q5 _1 W% h, d1 w! H, X! L) n/ I$ _. Z+ P

: H# a6 \- K& n" N! R

- [9 c  s. C5 n2 v5 到svmtrain这一步报错

7 q0 Z2 Y1 H. q1 U% u2 R??? Errorusing ==>svmtrain at 172

1 h" ]8 r! E* s. l5 _! E6 d& GGroup mustbe a vector.

" v9 i: l6 p, Z- V1 P8 o是因为在添加工具箱的时候没有添加完全,file-Set Path-Add with Subfold ...添加好路径就可以了: X8 C& ]4 G/ T( V; |! Q( Y+ E

在使用过程中到目前只遇到这些错误~现在也只是会简单的用libsvm工具箱……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值