|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" h$ G8 O! B9 B, |2 V. Q% d
工作环境# N" S# S' B2 z$ G; s$ b
- 软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit( |- p' [# d, W" L, L# J
( p! O: i+ e- S( |' T9 f. w
: [6 g4 D$ D) {! u& XMatlab 官方并没有自带svm工具箱,这就需要我们手动来添加SVM工具箱了,具体步骤如下:
2 c0 H" @8 j, o" M+ U
# {: {$ j3 f3 d; ^Step1:下载SVM工具箱,http://see.xidian.edu.cn/faculty ... dexfiles/indexl.htm* u$ V0 M4 N. B7 x
3 x3 F9 p; Q9 P4 T7 z5 a% B
解压缩到matlab安装目录\toolbox G0 c5 [2 K( s/ c2 O2 Z {
, O5 U* p- O8 l# z4 `2 [1 e
Step2:安装,打开matlab点击set path---->add folder 然后把你的工具箱文件夹添加进去就可以了- \+ L- |6 Y& D* d" l
# x9 L T8 q. H* A! e+ ] L5 q9 f
Step3:路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。4 ]' u; R( K. e; F7 F& ]
) Q1 t1 T' Z' ?/ n
Step4:测试,可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了。* n. H- O1 Y* M: X6 `
( H% C! t: N) S1 `
编写测试脚本:
7 u& V4 e* h. D" u( b9 N. P$ N
) U9 \# a3 w5 c6 K- % 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);
- ; G! I# ?5 I# j
) r/ U! x2 X; K. o) X6 ]( `: m& S1 O
- q/ H& X0 \/ u+ G U
: o7 Q; d8 L! v3 r# w, {问题:
# o( v; ^$ R& H( j* h& X) G
. e7 B/ X4 e) }" U2 s; x: }5 I如果报错:Invalid MEX-file 'E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll':* }1 S( V! w: z! e1 U6 h' T
E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll is not a valid Win32 application.
0 [# _# i: ]9 D0 D5 R经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高,解决办法:1、在Matlab的command中输入
$ R- ]0 A4 k9 }/ b6 _7 ]* L N. y! W! o4 z" C: | |! v
>> cd matlab安装路径\toolbox\svm\Optimiser* x7 c6 f# ` M6 x4 d
>> mex -v qp.c pr_loqo.c
0 _! i5 f( M( p/ z" {& F/ |$ w$ A- o0 Q& }+ k
出现选项: J0 m- ]0 C0 W
5 h. X3 e- E3 r5 P, |8 s0 H; j' O, k3 K; E. w
Select a compiler:
7 {7 `/ X; S! R2 M P% j( Q[1] Lcc-win32 C 2.4.1 in E:\1_PROG~1\MATLAB~1\sys\lcc
1 c# v& X7 r$ b$ E6 H% d& p[0] None + ~* `/ V% u3 F' R! b
. U* v) u* H; K选择1,Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。
/ t2 d+ u; h' D- K
/ X: \& ^) k8 f/ r9 k |
|