|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
# z# t+ K+ o5 l% I6 ^: ~工作环境! _: ?) O% f& q& a; j
- 软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit
. a: Q5 T' _* x
- B# a; a3 O4 m5 K0 w: E7 W1 A0 W8 w0 ^" }( S
Matlab 官方并没有自带svm工具箱,这就需要我们手动来添加SVM工具箱了,具体步骤如下:
( E) f& o* o3 A
, B( R# `! N; l. j/ R$ LStep1:下载SVM工具箱,http://see.xidian.edu.cn/faculty ... dexfiles/indexl.htm
N% W: g; Q% ?( j' l$ v' f' ]; ?
8 n' e3 Z! [ }2 { ~解压缩到matlab安装目录\toolbox1 Q$ r: S4 \2 D6 d' N; I
# Z2 W) V. E1 q) b5 oStep2:安装,打开matlab点击set path---->add folder 然后把你的工具箱文件夹添加进去就可以了! C% z3 Y2 \$ I) k3 ~* |4 V
; T2 X4 V; z2 F7 z' C
Step3:路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。
" k: @, p# ~) Z/ \% w- }& |- w" s, A4 t
Step4:测试,可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了。& y% y K* a$ {% `7 C! u
& |& y0 r$ {" o; N3 I) z" w编写测试脚本:
+ Z" U* j9 D$ J& c, S. [
' V y( j; k% G9 t5 Z2 I& E' U/ p- % 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);
- 3 a, r' y# A& k3 X2 m
% a/ ?1 v; |3 G7 ]
, {* I0 z' x* \! h6 w
8 |! E! t. O2 b8 E1 j问题:) ? E8 R' Z" F. D s
, B) d; v: @- V5 M: T如果报错:Invalid MEX-file 'E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll':
5 u$ }9 Z# r( h1 aE:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll is not a valid Win32 application.( t! P9 C. N0 F
经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高,解决办法:1、在Matlab的command中输入
9 H; S# b, W5 R6 R4 k0 O: T- }6 Z. W, A8 W& q" E
>> cd matlab安装路径\toolbox\svm\Optimiser
6 D' u* n0 a. n* u" I" _: o>> mex -v qp.c pr_loqo.c) |0 g0 k3 Y/ F6 Q7 _- q) l& V6 x
7 K( L$ ` m1 s+ m/ [9 m
出现选项:
8 \( t& |: }+ }7 g
% ?5 {3 D* R/ D0 ?, Z1 eSelect a compiler: % E, W% L! d" @6 V# {# n
[1] Lcc-win32 C 2.4.1 in E:\1_PROG~1\MATLAB~1\sys\lcc
( f' p, w0 g9 [! }4 J% d[0] None
' x2 A% I) A! t: U1 G4 N) |
' M+ j7 D9 B* X: z( y6 y选择1,Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。
% H7 q4 E) E1 y& z( x/ d7 T' C4 s- k* C& ^" u& d2 V
|
|