Find the common number in rows?
2 ビュー (過去 30 日間)
古いコメントを表示
Say
A = [1 2 3;
1 4 6;
7 8 1;
6 3 1]
The common number in every row is 1. I want to output the result with all other number except the common number, 1. Desired result is
[2 3 4 6 7 8]
repeated numbers are shown once only. As I know, this can be achieved using 'unique(A)'. But I dunno how to get rid of the common number. Thank you all for help!
0 件のコメント
採用された回答
Azzi Abdelmalek
2014 年 11 月 15 日
編集済み: Azzi Abdelmalek
2014 年 11 月 15 日
A = [1 2 3; 1 4 6; 7 8 1; 6 3 1];
[ii,jj,kk]=unique(sort(A,2))
setdiff(ii,ii(histc(kk,1:numel(ii))==size(A,1)))
Or
[ii,jj,kk]=unique(sort(A,2))
out=ii(histc(kk,1:numel(ii))<size(A,1))
0 件のコメント
その他の回答 (2 件)
Azzi Abdelmalek
2014 年 11 月 15 日
A = [1 2 3; 1 4 6; 7 8 1; 6 3 1]
B=A(2:end,:);
idx=arrayfun(@(x) all(any(ismember(B,x),2)),A(1,:))
out=setdiff(unique(B),A(idx))
0 件のコメント
the cyclist
2014 年 11 月 15 日
Here is a straightforward method:
A = [1 2 3;
1 4 6;
7 8 1;
6 3 1];
common = A(1,:);
for nr = 2:size(A,1)
common = intersect(common,A(nr,:));
end
result = setdiff(A,common)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!