我在MATLAB中找到矩阵的所有列之间的公共元素时遇到了问题,我试图自己解决它,基本问题是交叉函数集只是在两个矩阵之间相交,所以我写了一个像此
A=randi(n,m);
B=struct();
for k=1:size(A,2)-1
B.(['b' num2str(k)])=intersect(A(:,k),A(:,k+1));
end
遗憾的是问题没有解决,因为A的维度未知,所以我们与B有同样的问题! 谢谢大家。
答案 0 :(得分:1)
使用bsxfun
-
unqA = unique(A)
out = unqA(all(any(bsxfun(@eq,A,permute(unqA,[2,3,1])),1),2))
示例运行 -
A =
8 5 6 4 8
4 6 7 5 9
9 4 4 7 5
9 4 9 5 6
9 9 7 9 6
9 5 9 4 8
8 5 6 9 8
7 5 6 7 4
out =
4
9