|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
( |* P1 I: k! Y z工作环境
4 O9 }1 j7 S& ?3 [( b) b- 软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit# ~1 Z, D" F1 h+ ?
6 n' z" f% m% l) W$ ~) g, _' w0 h
Matlab 官方并没有自带svm工具箱,这就需要我们手动来添加SVM工具箱了,具体步骤如下:
8 B: V. ^& B6 G/ ]- n
/ f2 N u ]' U% kStep1:下载SVM工具箱,http://see.xidian.edu.cn/faculty ... dexfiles/indexl.htm1 e# D+ r+ ?( a: Z* x% F ?
0 X7 S: { w$ d7 M3 _+ ~9 _
解压缩到matlab安装目录\toolbox
, {) k( F; n9 m* B9 q* a- g: A9 ~2 a; F" g( H" f, v
Step2:安装,打开matlab点击set path---->add folder 然后把你的工具箱文件夹添加进去就可以了
0 K6 W P- @3 c& Z6 [! j) S Y; D3 M
Step3:路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。8 I5 P# `! c& b9 w \5 f
h @9 @7 W% I5 g0 U kStep4:测试,可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了。
2 M# |# W2 X- E( `* N' `9 H' `8 \5 { g8 K+ H$ \
编写测试脚本:# p3 n9 |) s( S: s, Q+ K
! b; u* e- r0 v: ^$ ?- % SVM工具箱测试代码,Create by pang
- clc
- clear all
- close all
- N = 50;
- n=2*N;
- randn('state',6);
- x1 = randn(2,N)
- y1 = ones(1,N);
- x2 = 5+randn(2,N);
- y2 = -ones(1,N);
- figure;
- plot(x1(1,:),x1(2,:),'bx',x2(1,:),x2(2,:),'k.');
- axis([-3 8 -3 8]);
- title('C-SVC')
- hold on;
- X1 = [x1,x2];
- Y1 = [y1,y2];
- X = X1';
- Y = Y1';
- % 其中,X是100*2的矩阵,Y是100*1的矩阵
- C = Inf;
- ker = 'linear';
- global p1 p2
- p1 = 3;
- p2 = 1;
- [nsv alpha bias] = svc(X,Y,ker,C);
- predictedY = svcoutput(X,Y,X,ker,alpha,bias);
- svcplot(X,Y,ker,alpha,bias);
- 9 b, I9 d3 v' f9 q% M5 A, F
( i9 D8 h2 l/ i: j
* B( G% k) e# h1 p2 t! Q) n
5 o& a* E& t2 {, b+ N2 a& e; b问题:
+ d; Y. F, d! a f$ K% w8 _2 x5 R5 Q+ Y5 ]6 M8 M& O
如果报错:Invalid MEX-file 'E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll':1 J9 f4 d6 l4 ^* R) A
E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll is not a valid Win32 application.
4 N9 z2 e% ~5 j, p经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高,解决办法:1、在Matlab的command中输入
3 i; R p6 |, `1 w A
+ B. G }. O5 l: f>> cd matlab安装路径\toolbox\svm\Optimiser- x! ]9 y7 d' ]$ g7 I* [
>> mex -v qp.c pr_loqo.c I) K/ {* W, L
( x: h# F0 e1 U- R- _
出现选项:# ^+ r" T1 ~6 a6 S# ^# f3 {" K
- L f9 ~% n/ y3 l( n& o0 GSelect a compiler:
9 h9 p; f8 k( c, ?[1] Lcc-win32 C 2.4.1 in E:\1_PROG~1\MATLAB~1\sys\lcc 8 h% ~' _5 r/ J0 o: z; t
[0] None
G6 ~" R/ {: N+ f: U: \) S& t' K' F* x4 V# n
选择1,Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。
8 }' T, u' f D u: J# P5 U1 `* R8 i
|
|