Comparing cell arrays for same values?
3 views (last 30 days)
Show older comments
Ok so - This may be a little hard to explain to forgive me.
I have a selection of array of letters (lets call is matrix X), e.g
A B C; A C D; A D G; A E H; Q N J; A G K; A H I; A I W;
Defined as a 8x3 cell (in this case). I also have another array (matrix Y) (11x2 cell) of similar format (populated with letters).
What I want to do is write some code which looks through each row of matrix X in turn and returns a "1" if the row contains both letters in any row of matrix Y and a "0" if not.
For example, matrix X is as above and matrix Y is,
A F; E D; E C; J I; J H; M L; V T; V U; Q J; Q O; Q P;
In this case, the 5th row of matrix X would agree with the statement as "Q" and "N" are present (as in the 9th row of matrix Y). The other rows in X are all fine and would return "1".
I hope that makes sense - happy to explain further if necc.
Best,
Craig
2 Comments
Accepted Answer
Azzi Abdelmalek
on 10 Sep 2013
Edited: Azzi Abdelmalek
on 10 Sep 2013
Edit
X={'A' 'B' 'C'
'A' 'C' 'D'
'A' 'D' 'G'
'A' 'E' 'H'
'Q' 'N' 'J'
'A' 'G' 'K'
'A' 'H' 'I'
'A' 'I' 'W'}
Y={ 'A' 'F'
'E' 'D'
'E' 'C'
'J' 'I'
'J' 'H'
'M' 'L'
'V' 'T'
'V' 'U'
'Q' 'J'
'Q' 'O'
'Q' 'P'}
n=size(X,1);
out=zeros(n,1)
for k=1:n
out(k,1)=any(all(ismember(Y,X(k,:)),2))
end
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!