2016-11-04 87 views
3

我有一個問題,以找到矩陣的所有列之間的共同元素在MATLAB中,我試圖解決它我的自我,基本問題是相交函數集相交只有兩個矩陣之間,所以我寫了這樣的代碼在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 

遺憾的是沒有解決導致的尺寸問題是未知的,所以我們有同樣的問題爲B! 謝謝大家。

回答

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 
相關問題