Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc
- clear all
- close all
- I=1000;
- n=2;
- eta=0.5;
- A=ones(I,1);
- B=rand(I,1);
- C1=0.4*rand(I/2,1);
- C2=0.6+(0.4*rand(I/2,1));
- D1=ones(I/2,1);
- D2=-1*ones(I/2,1);
- C=[C1;C2];
- D=[D1;D2];
- M=[A B C D];
- scatter(M(1:I/2,2), M(1:I/2,3), '+');
- hold on
- scatter(M(I/2+1:end,2),M(I/2+1:end,3),'*r');
- W=zeros(1,n+1);
- k=0;
- while(1)
- A=[];
- for i=1:I
- x=M(i,1:n+1);
- S=W*x';
- f=-1;
- if S>0
- f=1;
- end
- if ~(f==M(i,n+2))
- A=[A,M(i,:)];
- end
- end
- [row,cols]=size(A);
- if row ==0
- break;
- end
- index=1+floor(rand()*row)
- x=A(index,1:n+1);
- y=A(index,n+2);
- W=W+eta*y*x;
- k=k+1;
- end
- W
- k
- x1=[0:0.05:1];
- x2=(-W(1)-W(2)*x1)/W(3);
- plot(x1,x2,'r');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement