function neuron=Wang2D(I)

% constants

sigmaRow=2;	% fall-off of Gaussian weights in row dimension
sigmaCol=2;	% fall-off of Gaussian weights in column dimension

[N,M]=size(I);

% matrix of neurons

neuron=cell(N,M);

% initialise the potential (step 0.1)

c.p=1;

% initialise the permanent weights (step 0.2)

for rowi=1:N,
	for coli=1:M,
		c.tij=zeros(N,M);
		for rowj=1:N,
			for colj=1:M,
				c.tij(rowj,colj)=makePermWeight(rowi,coli,rowj,colj,sigmaRow,sigmaCol);
			end
		end
		neuron(rowi,coli)=c;
	end
end

% form the dynamic weights (step 0.2)

