我在MATLAB中有一个矩阵。我想检查每个元素的4个连接的邻居(左,右,上,下)。如果当前元素等于任何邻居,那么我们将其设置为零,否则它将其设置为1。
程序如下,要比较的数据为矩阵A,最后得到比较之后新的A
%假设原始数据
A = [1 2 1;2 2 3;3 2 1];
[r,c] = size(A);
%复制比较矩阵;
A_l = A(:,1:end-1);%左右比较,左;
A_r = A(:,2:end);%左右比较,右;
A_u = A(1:end-1,:);%上下比较,上;
A_d = A(2:end,:);%上下比较,下;
B = [(A_l==A_r),zeros(r,1)]+[zeros(r,1),(A_l==A_r)]+[(A_u==A_d);zeros(1,c)]+[zeros(1,c);(A_u==A_d)];
A = ones(r,c).*(B==0)+0.*A.*(B~=0);