|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
r. U1 C8 T- Q
工作环境" B1 E9 h* l. I/ Q/ |- f
- 软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit
% p d! _. R+ J; g% i) e3 s
1 I; Y1 R; ]; p3 _( |
/ y8 ?# f, V+ N2 y' xMatlab 官方并没有自带svm工具箱,这就需要我们手动来添加SVM工具箱了,具体步骤如下:0 B$ T; V Y% G! |
. ]% s$ ?) n4 @
Step1:下载SVM工具箱,http://see.xidian.edu.cn/faculty ... dexfiles/indexl.htm
8 J# |7 b, H2 H& ]8 t5 R: R( C5 L* R$ [1 `- c% {+ B# a3 f
解压缩到matlab安装目录\toolbox* K: O! i0 _6 ~0 Y, W" S# K- K* K. E
* S$ x# e h1 j8 {6 pStep2:安装,打开matlab点击set path---->add folder 然后把你的工具箱文件夹添加进去就可以了2 M. L. ~1 N1 k, |+ U+ m
* c. F. P$ k& T
Step3:路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。7 G- M2 q: R8 a0 w; W
; r* W* S+ h) b( EStep4:测试,可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了。/ \4 A) q7 s3 |$ z# Z/ M* n% h. Q
: j9 o( P1 `9 @6 j' y
编写测试脚本:
6 ]# k3 F$ }1 t6 B0 W4 {$ I9 q8 h' c+ \# E4 h- ?
- % 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);
- , V2 @2 g3 B7 M8 U
' y: m9 O: D( k& ]! j
2 F' d0 p e) H9 C3 ~& a$ ~
% W( W3 n) ]; s, L/ P4 w9 O( `问题:
! O+ R5 z, Q1 L8 m7 o& P. k
5 {& O6 I) P- @* ^3 Z8 S) s1 _. @如果报错:Invalid MEX-file 'E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll':
2 X& |& \6 O4 z# |E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll is not a valid Win32 application.: ?4 N+ F( b7 R. C: j
经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高,解决办法:1、在Matlab的command中输入
3 M7 D9 J% J D f) D, [/ z
' y- l+ {( ~) ^1 p. w>> cd matlab安装路径\toolbox\svm\Optimiser
2 v) k! e; ^! G6 h>> mex -v qp.c pr_loqo.c
+ x* I2 ]0 ~4 z% @, N+ a, s* P% ?# P# B1 L+ H" C
出现选项:
) s5 |! e$ ]4 H I/ r, v
/ E( K C/ y0 v5 l+ PSelect a compiler:
: G0 i) v0 {; Z[1] Lcc-win32 C 2.4.1 in E:\1_PROG~1\MATLAB~1\sys\lcc + m# C1 p" J, y5 Y# C- X
[0] None
. ?: E4 u$ q& o% A0 q* O" \
8 R1 i- z+ _7 e. j5 _选择1,Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。3 ^: [2 {0 i% S5 `5 Q5 t3 l
8 U, w% v. s* T2 O, _9 c* K
|
|