考虑一下
A = [1 2 3; %Matrix A is a bit different from yours for testing
4 5 6;
7 8 1;
1 2 7;
4 5 6];
[row col] =size(A)
answers = zeros(row,row); %matrix of answers,...
%(i,j) = 1 if row_i and row_j have an equal element
for i = 1:row
for j = i+1:row %analysis is performed accounting for
% symmetry constraint
C = bsxfun(@eq,A(i,:),A(j,:)'); %Tensor comparison
if( any(C(:)) ) %If some entry is non-zero you have equal elements
answers(i,j) = 1; %output
end
end
end
answers = answers + answers'; %symmetric
这里的输出是
answers =
0 0 1 1 0
0 0 0 0 1
1 0 0 1 0
1 0 1 0 0
0 1 0 0 0
当然,答案矩阵是对称的,因为你的关系是.
本文介绍了一种用于比较矩阵中各行列是否存在相同元素的算法,并通过示例展示了如何使用MATLAB或其他支持张量运算的语言实现该算法。算法的核心是利用张量比较来高效地找出矩阵中相同的元素。
820

被折叠的 条评论
为什么被折叠?



