我在matlab中编写了一个代码,用于使用Hopfield Network进行图像模式识别。 我的代码没有错误,因为我使用字母模式,所以可以获得很好的结果。但是当我使用数字模式时,结果会有所不同。为此,我对六个数字使用了两种不同的模式。 如果可以的话,请引导我。
matlab
% Retrieval phase
for input = 1:6
figure(input+1);
set(gcf,'Name','Testing Covergence from 2nd input to 1st input')
subplot(4,5,2)
Imageplot1(P(:,input),Dimension,Dimension);
xlabel('1st pat')
subplot(4,5,4)
Imageplot1(P2(:,input),Dimension,Dimension)
xlabel('2nd pat')
update = 400 ; % iritation to show
Input = P2(:,input);
plot='on';
%% my check
Out = zeros(Dime,1) ;
Counter = 1 ;
for j = 1:Dime
Out(j) = sign(W(j,:)*Input); %Convergence Condition
if Out(j)~= Input(j)
Input(j) = Out (j) ;
Iteration(:,Counter) = Input ;
Counter = Counter + 1 ;
end
end
It_n = ceil ( Counter / update ) ;
figure (input + 1)
for n = 1 : It_n
if (n * update) < (Counter - 1)
subplot(4,5,5+n)
Imageplot1(Iteration(:,n * update),Dimension,Dimension);
pause(0.3);
end
end
subplot(4,5,18)
Imageplot1(Iteration(:,end),Dimension,Dimension);
xlabel('final Iteration')
clear Iteration
end