Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-04-14
帖子: 3
声望力: 0 ![]() |
![]()
function Hopfield()
tic clc; %定义个目标向量 t5=[0 0 0 0 0 0 1;0 0 0 0 0 0 1;0 0 1 1 1 1 1;... 0 0 1 1 1 1 1;1 0 0 0 0 1 1;1 1 1 1 1 0 0;... 1 1 1 1 1 0 0;0 0 0 0 0 1 1]'; t7=[0 0 0 0 0 0 0;0 0 0 0 0 0 0;1 1 1 1 1 0 0;... 1 1 1 1 1 0 0;1 1 1 1 1 0 0;1 1 1 0 0 1 1;... 1 1 1 0 0 1 1;1 1 1 0 0 1 1]'; t4=[0 0 1 1 0 0 1;0 0 1 1 0 0 1;0 0 1 1 0 0 1;... 0 0 1 1 0 0 1;0 0 0 0 0 0 1;0 0 0 0 0 0 1;... 1 1 1 1 0 0 1; 1 1 1 1 0 0 1;]'; t9=[1 1 1 0 0 1 1;1 0 0 1 1 0 0;1 0 0 1 1 0 0;... 1 0 0 1 1 0 0;1 1 0 0 0 0 0;1 1 1 1 1 0 0;... 1 1 1 1 1 0 0;1 1 1 1 1 0 0]'; T=[t7 t5 t4 t9]; %形成总的目标向量 net=newhop(T); %设计hopfield网络 %定义测试样本 T7=[0 0 0 0 1 0 1;0 1 0 0 1 0 0;0 1 1 1 1 0 0;... 1 1 1 1 1 0 0;1 0 1 1 1 0 1;0 1 1 1 0 0 1;... 0 0 1 1 0 0 1;0 1 1 1 0 0 1]'; %7×8 subplot(1,3,1); figt(t7); title('待试数字') subplot(1,3,2); figt(T7); %绘制测试样本二值化图像 title('测试样本') %网络仿真 y=sim(net,8,[],T7); y=y>0.5 %二值化 subplot(1,3,3); figt(y); %绘出仿真输出二值化图像 title('仿真结果') toc %绘制测试样本二值化图像的自定义函数 function figt(t) hold on axis square %以当前坐标轴范围为基础,将坐标轴区域调整为方格形 for j=1:8 for i=1:7 if t((j-1)*7+i)==0 fill([i i+1 i+1 i],[9-j,9-j,10-j,10-j],'k') else fill([i i+1 i+1 i],[9-j,9-j,10-j,10-j],'w') end end end hold off 这是用matlab编程,利用hopfield神经网络识别数字的程序,在仿真的时候不能进行仿真,sim()语句,请高手指教!!!谢谢 |
![]() |
![]() |