EDA365电子论坛网

标题: Malab安装libsvm时会遇到的一些坑 [打印本页]

作者: thinkfunny    时间: 2020-3-9 10:44
标题: Malab安装libsvm时会遇到的一些坑
2 J: n6 ]1 V5 _) l# n8 N
工作环境
3 Z: ]/ W* J( H7 E" A7 M3 f2 ~' w$ z8 P1 J* I4 b
今天在使用matlab实现svm算法的时候,发现使用svmtrain函数报错:: ~$ y1 h0 `$ |: s3 @
Y must be a vector or a character array
4 c% L" q! e. v4 X" ]8 Z立马help svmtrain看看是否少什么东西,命令执行结果如下:5 k8 Q/ R* W5 F8 y* Q0 j

& H  S  J5 o; e 于是,网上找找资料,这一找不得了,发现大问题!按照参考文献的思路,应该是我的Matlab少了libsvm库,搞不好这个问题无解。幸好libsvm不是matlab自带的,而是需要下载编译的,需要的朋友可以从这https://www.csie.ntu.edu.tw/~cjlin/libsvm/下载。
, F, R; r' I7 l: o0 ?; f* j5 W- X# o! F' I6 L3 l9 J$ W

( c% u7 Q$ n% F" m" u9 t1 A7 w; ]: ^/ H0 Y
文件内容如下:4 e: r6 U9 Y5 d7 a

! C+ ]3 F4 i7 |/ w) j . {5 Q4 ~  t2 b+ p  ]$ @4 N
( t; q$ U) f( B' b4 n/ U
下载下来的是源代码,需要经过编译,查看README.md,可以发现:5 i3 |2 K1 N2 w3 l1 E- J& B; X' b
3 I# _5 g+ q1 O1 C# t
   
5 \  O* p' {+ l3 k5 F9 y  X于是赶紧将libsvm压缩包扔到matlab/toolbox/下面,然后定位到libsvm3.23文件夹,输入mex -setup,
" X2 s1 Y* f7 l- G  [" a8 \+ a& [5 w) Z0 M
    ! T4 @& Q/ p" L8 p9 Y9 z( d
只有一个编译器!也就是matlab自带的编译器,于是只能选择该编译器,输入make,出来一堆错误:/ n  C. ]7 D. O% g; v
7 A, r) j- K7 h# F
  
6 o" o( y9 j. T原因是lcc 编译器不支持c++,要使得matlab能够编译c++文件的话,只能安装第三方编译器比如微软的vsstudio或者vc++6.0以及mingw-w64,由于vs或者vc比较大我就没再折腾,倒是下载了mingw-w64的离线版,(在线安装版本下载不下来),但是离线版下载下来之后解压缩,死活都配置不好,matlab中就是不显示该编译器!我电脑中其实也有一个cl编译器也不了解如何去配置。最后无果,只能找一个编译好的libsvm32位版本,据说是在winxp下面编译的,通用性应该不错,试了试,可以成功运行!8 Q, }* _. S2 T5 H; w. ]
* s/ a2 B+ y. X% E2 @6 J0 v3 z  g

$ s: x1 {) y; R7 v! C
作者: CCxiaom    时间: 2020-3-9 17:32
Malab安装libsvm时的一些坑




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2