|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
8 e( c6 A' H8 E( b工作环境7 l( z$ d' q0 W" i) b
- 软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit& z# G0 i! J( i: y
Y: P4 H/ u8 C. H; F7 R$ K3 i- D$ m( D' `/ L9 Q! i3 g
Matlab 官方并没有自带svm工具箱,这就需要我们手动来添加SVM工具箱了,具体步骤如下:1 u0 C7 c# l O
7 r. f5 X/ B( ^( g
Step1:下载SVM工具箱,http://see.xidian.edu.cn/faculty ... dexfiles/indexl.htm
& `+ C2 C; G/ _
& R7 c; b( I, K0 \( y解压缩到matlab安装目录\toolbox
) |0 g+ c0 D# I) n; |+ ?- Z0 U; {! i4 ]
Step2:安装,打开matlab点击set path---->add folder 然后把你的工具箱文件夹添加进去就可以了
0 F; ]+ a+ ~5 a; K) p6 ?# K
, W% ^; N( y: S9 r* v2 O, r& oStep3:路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。
/ I3 d1 @: \3 d- k. a) F: O% R' I: I" b+ u, m b! d8 t8 E7 s
Step4:测试,可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了。
( S3 @. O) r4 T& n6 a( l% }, V' t) X: y: r% O2 a
编写测试脚本:
; o! U; T- t. Q; ?7 {+ j; A: I7 |$ N) ~, b$ _
- % 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);
U: I7 W# q g: i
# J E$ u# e5 T+ L5 w8 _
3 \ r L/ ]' G6 }; D5 G: r+ g/ S3 W! s
问题:
+ S& u5 m3 g* [% Z" ~2 ~8 i
( q R# D2 O8 ~( r& |( }如果报错:Invalid MEX-file 'E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll':8 W; z- Q+ _1 P- M. x
E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll is not a valid Win32 application.
0 H" p( W7 O& M. B- D$ _. U经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高,解决办法:1、在Matlab的command中输入+ |! J, S$ C' t$ V# ^: b
0 R2 a9 z4 v% {$ Y# N% B3 [>> cd matlab安装路径\toolbox\svm\Optimiser
( `! `( D/ E3 O: n) g4 |>> mex -v qp.c pr_loqo.c8 L: l' Y0 _# S$ v# ~! \; N. X& X. J
, J8 Y8 B" i! D3 ]+ F6 O出现选项:0 i, L& \% O, t7 g* G0 t
/ p" @4 O/ }1 ]! {- x5 X2 `
Select a compiler:
. w# [; y- Q( K* }* R/ E: v/ I[1] Lcc-win32 C 2.4.1 in E:\1_PROG~1\MATLAB~1\sys\lcc * F6 x* h7 }5 Y7 H
[0] None
' G8 W; v; ?. w7 }1 [$ P1 Y+ [- N
q! \& d( ]5 f( x选择1,Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。! f% n6 o( }5 h; f
4 U# i0 V1 w* w+ u
|
|