|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
L |$ V2 r& z9 H, \# r1 ~ N
工作环境
3 X8 s) N! i/ u1 `1 Y- 软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit
+ n4 |7 A7 Z ^% |2 k ; b; V2 R8 n: `# s# d3 w! e; @
" k# q9 ?% @; Q1 GMatlab 官方并没有自带svm工具箱,这就需要我们手动来添加SVM工具箱了,具体步骤如下:/ `. H: s4 X( x- q$ ^# G- G1 o a+ k, N
9 S" e6 z5 i6 m- U; X2 i7 j; y
Step1:下载SVM工具箱,http://see.xidian.edu.cn/faculty ... dexfiles/indexl.htm
8 u4 _6 @7 r5 o; C) e: n
9 @+ P C8 F1 L5 c( h( t解压缩到matlab安装目录\toolbox& p* |0 o. E6 ` k1 C- ?
3 B, I A6 T& Z- a
Step2:安装,打开matlab点击set path---->add folder 然后把你的工具箱文件夹添加进去就可以了. O! G; [( |) ^: e$ A/ J
; T/ ~9 E# d6 N
Step3:路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。; A4 q; Y4 m6 h* p# w, |* @2 O& ^
+ I* P8 g) `, v
Step4:测试,可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了。
8 g' ~0 c0 m4 }* k; A; u" @) V8 n; T+ r7 S7 {& S! e
编写测试脚本:& X1 Q& M+ c/ w) ]$ R
6 E; Q t+ a6 v- % 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);
- ( k( f% c7 j" y: P+ U: f
& G- G R; V Y
( M1 ^( x1 T8 N" n1 Q8 D8 C& _, j8 u7 H7 D) t
问题:, C7 ?$ A' \7 }; [
& D9 z, \3 b5 c4 G7 j如果报错:Invalid MEX-file 'E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll': T3 M* a3 K F+ e7 L4 `
E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll is not a valid Win32 application.# Z5 @, D/ N: s1 i
经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高,解决办法:1、在Matlab的command中输入
' J6 K8 r, w0 x6 ]
& l3 ~+ K, I3 s/ P9 f& E>> cd matlab安装路径\toolbox\svm\Optimiser9 H- e. i0 Q/ @) X2 [
>> mex -v qp.c pr_loqo.c
3 y; d# Q: C- \9 ^/ Q4 E5 `- ] s2 h B: R" r
出现选项:
$ c; r$ U! K# L4 M7 S0 D6 [$ ?) R8 A2 z
Select a compiler:
8 M: `) Z' U) V6 Q( b4 X[1] Lcc-win32 C 2.4.1 in E:\1_PROG~1\MATLAB~1\sys\lcc ' e6 N @' ?, M& P
[0] None
- O6 y5 k/ _+ f. B- P# O/ c# a& i5 t& i9 l
选择1,Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。
P! K) T" s4 L% }3 m; y! a
/ w, u& W( {! f. ]8 V+ U1 I! z |
|