⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perceptron_2.asv

📁 运用matlab实现感知器算法
💻 ASV
字号:
function classnum=Perceptron_2(Sample1,Sample2,sim)

%
n1=size(Sample1);

for i=1:n1(1)

   ExtendSample1(i,:)=[Sample1(i,:) 1];  %样本1分量增广化,训练样本增加分量1

end;

%
n2=size(Sample2);

for i=1:n2(1)

   ExtendSample2(i,:)=[Sample2(i,:) 1];  %样本2分量增广化,训练样本增加分量1

end;
ExtendSample2=-1.*ExtendSample2;  %训练样本2乘以-1

%
Sample=[ExtendSample1;ExtendSample2];

n=size(Sample);

w=ones(1,n(2));    %增广权矩阵赋初值   %w=[1 1 1];

%
c=1;  %修正量p=1>0

d=zeros(1,n(1));
inter=0;

while (min(d)<=0&&inter<200)    %循环条件每一个样本分类正确
    
    inter=inter+1;

    for i=1:n(1)

        d(i)=w*Sample(i,:)';

        if d(i)>0

            w=w;  %%分类正确,权重不变

        end;

        if d(i)<=0

            w=w+c*Sample(i,:);  %%分类错误,调整权重

        end;

    end;

end;
if(inter>=200)
    txt=sprintf('线性不可分');
    disp(txt);
else
     txt=sprintf('线性可分');
     disp(txt);
     if w*sim'>0
         classnum=0;
     else
         classnum=1;
     end
end

w

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -