📄 mybp.m
字号:
%global ww1,ww2;
val1=get(bool_method_h,'Value');
val2=get(train_h,'Value');
val3=get(recog_h,'Value');
%val4=get(shurudata1_h,'String');
%val5=get(shurudata2_h,'String');
%val8=get(shuchudata_h,'String');
%val6=int8(val4)-48;
%val7=int8(val5)-48;
%val6=8;
%val7=9;
%val4=char(val6+48);
%val5=char(val7+48);
%string=val4;
%set(shuchudata_h,'string',val6+val7);
%训练模式
%if(val1==1)
% disp('shuchu');
%else
% disp('notshuchu');
%end
if(val2==1)
switch (val1)
case 1
a=[0 0;0 1;1 0;1 1];
b=[0.0 0.0 0.0 1.0];
e=[0.0 0.0 0.0 0.0];
d=[0.0 0.0 0.0 0.0];
w=0.5*rand(1,2);
summ=0;
for time=1:800
summ=0;
for i=1:4 %样本数
for j=1:2 %一个样本的输出
e(i)=e(i)+a(i,j)*w(1,j);
end
d(i)=b(i)-sgm(e(i)); %误差
end
e=[0.0 0.0 0.0 0.0];
for i=1:4
if(abs(d(i))<=0.05) summ=summ+1;
end
end
if(summ==4)
disp('训练完成');
w1=w(1,1);
w2=w(1,2);
break
end
for j=1:2
for i=1:4
w(1,j)=w(1,j)+0.009*d(i)*a(i,j);
end
end
end
if(time==800)
disp('训练失败');
end
case 2
a=[0 0;0 1;1 0;1 1];
b=[0.0 1.0 1.0 1.0];
e=[0.0 0.0 0.0 0.0];
d=[0.0 0.0 0.0 0.0];
ww=rand(1,2);
summ=0;
for time=1:800
summ=0;
for i=1:4 %样本数
for j=1:2 %一个样本的输出
e(i)=e(i)+a(i,j)*ww(1,j);
end
d(i)=b(i)-sgm(e(i)); %误差
end
e=[0.0 0.0 0.0 0.0];
for i=1:4
if(abs(d(i))<=0.05) summ=summ+1;
end
end
if(summ==4)
disp('训练完成');
ww1=ww(1,1);
ww2=ww(1,2);
break
end
for j=1:2
for i=1:4
ww(1,j)=ww(1,j)+0.098*d(i)*a(i,j);
end
end
end
if(time==800)
disp('训练失败');
end
case 3
a=[0 0;0 1;1 0;1 1];
b=[0.0 1.0 1.0 0.0];
e=[0.0 0.0 0.0 0.0];
d=[0.0 0.0 0.0 0.0];
www=rand(1,2);
summ=0;
for time=1:1000
summ=0;
for i=1:4 %样本数
for j=1:2 %一个样本的输出
e(i)=e(i)+a(i,j)*www(1,j);
end
d(i)=b(i)-ssgm(e(i)); %误差
end
e=[0.0 0.0 0.0 0.0];
for i=1:4
if(abs(d(i))<=0.05) summ=summ+1;
end
end
if(summ==4)
disp('训练完成');
www1=www(1,1);
www2=www(1,2);
break
end
for j=1:2
for i=1:4
www(1,j)=www(1,j)+0.01*d(i)*a(i,j);
end
end
end
if(time==1000)
disp('训练失败');
end
otherwise
%disp('训练失败');
end
end
if(val3==1)
switch (val1)
case 1
val4=get(shurudata1_h,'String');
val5=get(shurudata2_h,'String');
a=double(val4)-48;
b=double(val5)-48;
c=sgm(a*w1+b*w2);
%c=0.1*4+0.3*6;
set(shuchudata_h,'string',c);
case 2
val4=get(shurudata1_h,'String');
val5=get(shurudata2_h,'String');
a=double(val4)-48;
b=double(val5)-48;
c=sgm(a*ww1+b*ww2);
%c=0.1*4+0.3*6;
set(shuchudata_h,'string',c);
case 3
val4=get(shurudata1_h,'String');
val5=get(shurudata2_h,'String');
a=double(val4)-48;
b=double(val5)-48;
c=ssgm(a*www1+b*www2);
%c=0.1*4+0.3*6;
set(shuchudata_h,'string',c);
otherwise
disp('计算不出');
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -