感知器算法

clc
clear all
fprintf('感知器算法\n');
x=[1,4,1;2,6,1;1,2,-1;2,2,-1];
%x=[0,0,0,1;1,0,0,1;1,0,1,1;1,1,0,1;0,0,-1,-1;0,-1,-1,-1;0,-1,0,-1;-1,-1,-1,-1]; 
[N,n]=size(x);%获取样本数目和维数;N为样本数目;n为样本维数
C=1; 
%w0=[0,0,0,0]';%初始化解向量
w0=[0,1,0]';
w=w0; 
flag=1;%迭代继续标志,当迭代全部正确时,flag=0,迭代结束
k=0;%记录迭代次数
while(flag)
    flag=0;
    k=k+1;
    for i=1:N
        w'*x(i,:)'
        if(w'*x(i,:)'<=0)
            w=w+x(i,:)';
            flag=1;
        end
    end
end
fprintf('迭代次数%d\n',k);
fprintf('解向量为w=('); 
for j=1:n     
    fprintf('%d ',w(j));
end
fprintf(')\n');  
fprintf('相应的判别函数为d(x)='); 
for j=1:n-1
    fprintf('(%d)x%d+',w(j),j);
end
fprintf('(%d)\n',w(j));
https://wenku.baidu.com/view/e1742cd388eb172ded630b1c59eef8c75fbf9522.html

猜你喜欢

转载自blog.csdn.net/keyanxiaocaicai/article/details/79506736