|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
4 f9 W: B, U5 W' m; H8 m) k
工作环境
1 }+ ]; s5 o T- 软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit& y8 w2 _/ k9 @- C/ Q% u
& p1 q" t- v. z+ a$ N9 k, w( K& s/ w7 ?
Matlab 官方并没有自带svm工具箱,这就需要我们手动来添加SVM工具箱了,具体步骤如下:
* B* Z( O" q% y/ p2 l { \$ r. o' L4 I# t! A) N& }8 \
Step1:下载SVM工具箱,http://see.xidian.edu.cn/faculty ... dexfiles/indexl.htm
+ g5 K- a% R: {& R7 ~, A3 d+ o: Z/ R8 V- z) R
解压缩到matlab安装目录\toolbox
$ U4 }( e# T( z
$ i3 d+ x: _8 F0 WStep2:安装,打开matlab点击set path---->add folder 然后把你的工具箱文件夹添加进去就可以了; C' K% e9 }: ~# h! G2 d
" @- N" y) e& T ]4 AStep3:路径加进去后在file→Preferences→General的Toolbox Path Caching里点击update Toolbox Path Cache更新一下。3 }$ M/ K1 e+ Z" a
' o. E6 M3 V3 uStep4:测试,可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了。
$ [6 \$ k) N2 L! m( K1 Y7 d6 B6 t
编写测试脚本:
, l' i! J$ o6 h; i: y( N+ q( k. y
1 S- |- f# E$ Y# u5 o5 ?- % 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);
- ; C' P2 ~7 S: _
0 K, x Z# i( h5 y, ]! {
: P# n9 i& l5 \0 A4 l' \! b4 l( j9 a
7 L; _* s R; X2 O! e. S问题:
}' Z1 q/ f* p) G$ K! }$ l9 }2 @3 K8 `$ t# C
如果报错:Invalid MEX-file 'E:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll':
! C, f/ ]' w x V( t5 N8 AE:\1_Program_File\MatlabR2012b\toolbox\svm\qp.dll is not a valid Win32 application.- I3 n& G9 {+ `" F% h
经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高,解决办法:1、在Matlab的command中输入) H ~! `& Y" o( F2 `1 W2 W
" `4 f) ] H! ~2 P: ?>> cd matlab安装路径\toolbox\svm\Optimiser
& Y! T# |9 ]+ H9 q& ~>> mex -v qp.c pr_loqo.c
; @ t+ D- b7 F/ Y
9 x8 J9 |( q7 p" M出现选项:
+ o9 Y3 l9 {2 v( f5 J0 w' P/ K! ]# ^! O% l( r/ w3 k
Select a compiler:
8 H) x% [3 p- B7 P- K4 n( o[1] Lcc-win32 C 2.4.1 in E:\1_PROG~1\MATLAB~1\sys\lcc
# M, J9 Z5 J6 v; a( S7 W5 @[0] None
( Q& f5 ^$ \; s3 G1 I \( b+ o) k8 S( z
选择1,Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。6 y* X, S* h1 B) t( c- Q/ Y
3 W+ k# _1 r( @+ G |
|