资源简介
利用matlab实现,采用Hopfield神经网络对大写字母进行识别,包含程序和字母文件,解压放在同一文件夹下使用
代码片段和文件信息
%字母的标准点阵
A=load(‘A.txt‘);
B=load(‘B.txt‘);
C=load(‘C.txt‘);
D=load(‘D.txt‘);
E=load(‘E.txt‘);
F=load(‘F.txt‘);
%训练样本(目标向量)
T=[A(:)B(:)C(:)D(:)E(:)F(:)];
%输出字母
figure(1)
for ii=0:5
subplot(23ii+1);
imshow(reshape(T(:ii+1)1510));
title([‘ 当前字母:‘ num2str(ii+1)])
end
%数字带噪声数字点阵(固定法)
%noise_matrix=load(‘noise_matrix.txt‘);
%数字带噪声数字点阵(随机法)
noise_matrix=A;
for i=1:150
a=rand;
if a<0.1 %以10%比例进行随机干扰
noise_matrix(i)=-A(i);
end
end
figure(2)
subplot(231)
imshow(noise_matrix);
title(‘带10%噪声的样本‘);
%关于hopfield网络的创建和仿真,参数形式参见Matlab的帮助
net=newhop(T);%创建hopfield网络,根据标准样本开始训练学习
No22=sim(net{15}{}{noise_matrix(:)});%仿真5次,只有一个样本noise_matrix
for ii=1:5
subplot(231+ii)
imshow(reshape(No22{ii}1510));
title([‘第‘ num2str(ii) ‘仿真结果‘])
end
noise_matrix=A;
for i=1:150
a=rand;
if a<0.2 %以20%比例进行随机干扰
noise_matrix(i)=-A(i);
end
end
figure(3)
subplot(231)
imshow(noise_matrix);
title(‘带20%噪声的样本‘);
%关于hopfield网络的创建和仿真,参数形式参见Matlab的帮助
net=newhop(T);%创建hopfield网络,根据标准样本开始训练学习
No22=sim(net{15}{}{noise_matrix(:)});%仿真5次,只有一个样本noise_matrix
for ii=1:5
subplot(231+ii)
imshow(reshape(No22{ii}1510));
title([‘第‘ num2str(ii) ‘仿真结果‘])
end
noise_matrix=A;
for i=1:150
a=rand;
if a<0.3 %以30%比例进行随机干扰
noise_matrix(i)=-A(i);
end
end
figure(4)
subplot(331)
imshow(noise_matrix);
title(‘带30%噪声的样本‘);
%关于hopfield网络的创建和仿真,参数形式参见Matlab的帮助
net=newhop(T);%创建hopfield网络,根据标准样本开始训练学习
No22=sim(net{18}{}{noise_matrix(:)});%仿真5次,只有一个样本noise_matrix
for ii=1:8
subplot(331+ii)
imshow(reshape(No22{ii}1510));
title([‘第‘ num2str(ii) ‘仿真结果‘])
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 382 2010-12-19 16:13 D.txt
文件 375 2010-12-19 16:17 E.txt
文件 363 2010-12-19 16:21 F.txt
文件 2006 2010-12-19 16:37 hopfieldzifu.asv
文件 2015 2010-12-19 16:45 hopfieldzifu.m
文件 374 2010-12-19 15:32 A.txt
文件 395 2010-12-19 15:42 B.txt
文件 376 2010-12-19 16:01 C.txt
----------- --------- ---------- ----- ----
6286 8
- 上一篇:Chineseflag.m
- 下一篇:相空间重构 matlab 代码
评论
共有 条评论