# how to get common elements within a cell array?

조회 수: 9 (최근 30일)
Tha saliem 2018년 3월 5일
댓글: Tha saliem 2018년 3월 6일
hey all
If i have following array:
{[1,7];[2,6,1];[7,1,3];[3,5]}
how can I compare each cell in this array with all other cells'values. for example for first cell [1,7] i have to compare it with all other cells and find common values. to compare with [2,6,1] we will get 1, to compare with [7,1,3] we will get [1,7] and with [3,5] we will get an empty cell. Similarly after this we will compare 2nd cell [2,6,1] with all cells in array.
please help
##### 댓글 수: 5이전 댓글 3개 표시이전 댓글 3개 숨기기
Jan 2018년 3월 5일
편집: Jan 2018년 3월 5일
Do the single vectors have unique elements? In other words: Is this possible as input or not:
{[1,7]; [2,6,1,1,6]}
Tha saliem 2018년 3월 6일
Yes they have unique elements.. [2,6,1,1,6] is not possible

댓글을 달려면 로그인하십시오.

### 채택된 답변

the cyclist 2018년 3월 6일
Do you need the comparison result? If not, I think this skips right to the final result
aL = 1:length(a);
for na = aL
finalResult{na} = intersect([a{na}],[a{setdiff(aL,na)}]);
end
This code is a bit obfuscated. But if it gives the result you expect, I can try to help you understand it if you need me to.
##### 댓글 수: 3이전 댓글 1개 표시이전 댓글 1개 숨기기
the cyclist 2018년 3월 6일
Here is the de-obfuscated version of my code, commenting on what each piece does.
% The data
a = {[1,7];[2,6,1];[7,1,3];[3,5]};
% Vector from 1 to the length of a
aL = 1:length(a);
% Loop through the vector
for na = aL
% Get the elements from the current cell
elementsFromCurrentCell = [a{na}];
% Create index to all *other* cells, except for the current cell
indexToOtherCells = setdiff(aL,na);
% Concatenate all the elements from those other cells
elementsFromAllOtherCells = [a{indexToOtherCells}];
% Find the intersection between the current cell and all the other cells
finalResult{na} = intersect(elementsFromCurrentCell,elementsFromAllOtherCells);
end
In order to get the "comparison" results, you just need to loop over each other cell in turn, rather than concatenating them all together the way I did to get the final result.
Tha saliem 2018년 3월 6일
Well Thank you so much for this detailed explanation. I have completely understood it. Thanks alot

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by