It is unclear if elements connected diagonally count as neighbours. If not, then you could try something like this.
At=A;
At(isnan(At))=9;
B=zeros(size(At));
for i=1:size(At,1)
B(i,strfind(At(i,:),[9 2])+1)=NaN;
B(i,strfind(At(i,:),[2 9]))=NaN;
end
At=At';
for i=1:size(At,2)
B(strfind(At(i,:),[9 2])+1,i)=NaN;
B(strfind(At(i,:),[2 9]),i)=NaN;
end
A(isnan(B))=NaN
ans =
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
NaN NaN 1 1 1 NaN NaN
NaN NaN 1 2 1 NaN NaN
NaN NaN 1 1 1 NaN NaN
NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN
Best Answer