感知器matlab,Matlab简单感知器判决实现代码

w1=[0.1 6.8 -3.5 2.0 4.1 3.1 -0.8 0.9 5.0 3.9; 1.1 7.1 -4.1 2.7 2.8 5.0 -1.3 1.2 6.4 4.0];

w2=[7.1 -1.4 4.5 6.3 4.2 1.4 2.4 2.5 8.4 4.1;4.2 -4.3 0.0 1.6 1.9 -3.2 -4.0 -6.1 3.7 -2.2];

%normalized

ww1=[ones(1,size(w1,2)); w1]; %size(w1,2)->指的是w1有10列)

% NO=size(w1,2)

%

% NO =

%

%     10

% A=ones(1,size(w1,2))

%

% A =

%

%      1     1     1     1     1     1     1     1     1     1

%  ww1=[ones(1,size(w1,2)); w1]

% %%这里的1我理解就是加长型的特征向量

% ww1 =

%

%   Columns 1 through 8

%

%     1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000

%     0.1000    6.8000   -3.5000    2.0000    4.1000    3.1000   -0.8000    0.9000

%     1.1000    7.1000   -4.1000    2.7000    2.8000    5.0000   -1.3000    1.2000

%

%   Columns 9 through 10

%

%     1.0000    1.0000

%     5.0000    3.9000

%     6.4000    4.0000

ww2=[ones(1,size(w2,2)); w2]; %size(w2,2)->指的是w2有10列

% ww2=[ones(1,size(w2,2)); w2]

%

% ww2 =

%

%   Columns 1 through 8

%

%     1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000

%     7.1000   -1.4000    4.5000    6.3000    4.2000    1.4000    2.4000    2.5000

%     4.2000   -4.3000         0    1.6000    1.9000   -3.2000   -4.0000   -6.1000

%

%   Columns 9 through 10

%

%     1.0000    1.0000

%     8.4000    4.1000

%     3.7000   -2.2000

X=[ww1 -ww2];%%知道这个地方时为什么了吧,这时候的X便是有20列的样本了

% X=[ww1 -ww2]

%

% X =

%

%   Columns 1 through 8

%

%     1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000

%     0.1000    6.8000   -3.5000    2.0000    4.1000    3.1000   -0.8000    0.9000

%     1.1000    7.1000   -4.1000    2.7000    2.8000    5.0000   -1.3000    1.2000

%

%   Columns 9 through 16

%

%     1.0000    1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000

%     5.0000    3.9000   -7.1000    1.4000   -4.5000   -6.3000   -4.2000   -1.4000

%     6.4000    4.0000   -4.2000    4.3000         0   -1.6000   -1.9000    3.2000

%

%   Columns 17 through 20

%

%    -1.0000   -1.0000   -1.0000   -1.0000

%    -2.4000   -2.5000   -8.4000   -4.1000

%     4.0000    6.1000   -3.7000    2.2000

%initializtion of W&k

k=1;

W=ones(size(X,1),1);

% NO=size(X,1)

%

% NO =

%

%      3

% W =

%

%      1

%      1

%      1

ok=0;

%循环体设计

while(ok==0)

for i=1:size(X,2)

if (W'*X(:,i)<0)

k=k+1;

W=W+X(:,i);

break;

else%%每一次正确判断之后,都要看这是不是最后一个样本

%%如果这是最后一个样本的话,就要跳出这个循环啦

if (i==size(X,2))

ok=1;

end

end

end

end

%图示

figure(1)

plot(w1(1,:),w1(2,:),'r.')

hold on

plot(w2(1,:),w2(2,:),'*') %样本

xmin=min(min(w1(1,:)),min(w2(1,:)));

% xMin_w1=min(w1(1,:))

%

% xMin_w1 =

%

%    -3.5000

% xMin_w2=min(w2(1,:))

%

% xMin_w2 =

%

%    -1.4000

xmax=max(max(w1(1,:)),max(w2(1,:)));

% xMax_w1=max(w1(1,:))

%

% xMax_w1 =

%

% %     6.8000

% xMax_w2=max(w2(1,:))

%

% xMax_w2 =

%

%     8.4000

ymin=min(min(w1(2,:)),min(w2(2,:)));

% yMin_w1=min(w1(2,:))

%

% yMin_1 =

%

%    -4.1000

% yMin_w2=min(w2(2,:))

%

% yMin_w2 =

%

%    -6.1000

ymax=max(max(w1(2,:)),max(w2(2,:)));

% yMax_w1=max(w1(2,:))

%

% yMax_w1 =

%

%     7.1000

% yMax_w2=max(w2(2,:))

%

% yMax_w2 =

%

%     4.2000

xindex=xmin-1:(xmax-xmin)/100:xmax+1;

yindex=-W(2)*xindex/W(3)-W(1)/W(3);

%

% W =

%

%    18.0000

%    -9.1000

%     7.4000

plot(xindex,yindex)%分类面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值