| Code: | function W = solver(B)
% Leandro G. Barajas
% Simple solver, no routing
[Brows Bcols] = size(B);
%Get Rows
r1 = repmat([1:Brows],Bcols-1,1);
r1 = r1(:);
c1 = repmat([1:Bcols-1],Brows,1)';
c1 = c1(:);
r2 = r1;
c2 = c1+1;
Wh = [r1 c1 r2 c2];
%Get Cols
r1 = repmat([1:Brows-1],Bcols,1);
r1 = r1(:);
c1 = repmat([1:Bcols],Brows-1,1)';
c1 = c1(:);
r2 = r1+1;
c2 = c1 ;
Wv = [r1 c1 r2 c2];
maxpad = max(B(:));
[Bi Bj] = find(B == maxpad);
[Ni Nj] = find(B >0 & B ~= maxpad);
Np = [Ni Nj];
W = [Wh ; Wv];
Ndel =zeros(size(W,1), size(Np,1));
for i = 1:size(Np,1)
Ndel(:,i) = all(W(:,1:2)==repmat(Np(i,:),size(W,1),1),2) | all(W(:,3:4)==repmat(Np(i,:),size(W,1),1),2);
end
Ndel = any(Ndel,2);
W(Ndel,:) = [];
|