|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
2 J) ^! ^6 ?/ Z' U, }
工作环境
) i+ {& Y, y( C- 软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit1 ~ r* h$ J! X
6 ?+ e" b( d/ v( n% g8 Y$ y8 q7 F, H ?
Matlab 官方并没有自带svm工具箱,这就需要我们手动来添加SVM工具箱了,具体步骤如下:% [9 T4 w9 c1 @
# }5 L$ `% s$ a6 @
Step1:下载SVM工具箱,http://see.xidian.edu.cn/faculty ... dexfiles/indexl.htm. i2 T& H n$ c; J; j& s y. l
- K6 x5 e+ S: G! D3 i
解压缩到matlab安装目录\toolbox
! b' s5 `" A: \& V2 ], W. g ]
5 X, I& `2 [" a3 e. q3 tStep2:安装,打开matlab点击set path---->add folder 然后把你的工具箱文件夹添加进去就可以了
; Z' P3 W5 x \, P9 C, U8 x" m3 t4 \( Z* V
Step3:路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。 ^ z) g7 w+ l" Q5 m; p3 L9 y
$ W- u0 y! K7 E, \- A! F. U, ]
Step4:测试,可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了。3 j: n. l6 j& ~! A* R; N! u: M' h
$ l! F* t' t) D1 @9 W7 c0 `2 ~' d编写测试脚本:
( {; r) L5 i9 D) }% t- Y6 L! x8 ?
- % 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 n: @3 {2 i& V+ Q7 X% `, J, q
, C! p7 z8 C! }+ Y
4 [# @4 c6 f" e, C
1 r1 W" c0 y' x
问题:
! o2 |( \2 V$ N' i) f
/ W6 G/ Z0 h& q; I9 J( }如果报错:Invalid MEX-file 'E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll':/ t/ O2 o9 @3 n/ j3 `
E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll is not a valid Win32 application.
1 S' I( t3 v7 z经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高,解决办法:1、在Matlab的command中输入
1 e9 F$ v, l! q$ E( G4 n2 L
% U& O; T9 w2 F( G3 s# y. T0 q>> cd matlab安装路径\toolbox\svm\Optimiser
0 Q) j: ?: s! i- c7 I" K$ z>> mex -v qp.c pr_loqo.c
0 v5 y. l$ _4 J% S' g% D+ X' x/ \5 Q& p
( B' M" g& i7 W( g出现选项:# B/ v$ L0 V6 p6 h5 N) l0 q) ?
5 v6 D0 V, ?+ M ?
Select a compiler:
& M6 T, x3 F4 |" C( i[1] Lcc-win32 C 2.4.1 in E:\1_PROG~1\MATLAB~1\sys\lcc ( \* m8 W3 f2 \ M6 r* Z( _% ~& o
[0] None
( S1 B( o/ r2 u3 b5 |8 w ?9 a }, u1 M3 f
选择1,Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。. g2 d( A) m5 {, R1 j* Y r1 X8 h7 p
! e7 C1 V$ ]1 [* \: Z* a b& ]& w
|
|