%% LAYER 1
% Preparazione del layer 1: addestramento e test di autoassociazione con
% pattern parzialmente corrotto in ingresso.
%% training layer1 e generazione output per training L2
if train_flag
L1_train_phase1
Wp_L2L1=eye(numero_colonne)*120; %sinapsi in avanti
Wp_L1WM=eye(numero_colonne)*100; %sinapsi da WM
Wp_WML1=eye(numero_colonne)*100; %feedback verso WM
end
%per visualizzare la matrice dei pesi
%figure, imagesc(Wp_L1L1), colormap gray, axis image, colorbar
%% test di autoassociazione:
if test_flag1
P=randi(size(all_patterns,2),1,1);
corrupted_input=corrupt_pattern(all_patterns(:,P));
%prendo un pattern a caso tra quelli caricati e lo corrompo.
figure
subplot(121), title('pattern originale'), hold on, axis image
imagesc(vecToIm(all_patterns(:,P),N,M)), colormap gray
set(gca, 'YDir','reverse')
subplot(122), title('pattern corrotto'), hold on, axis image
imagesc(vecToIm(corrupted_input,N,M)), colormap gray
set(gca, 'YDir','reverse')
L1_test
end