Comparing cell arrays for same values?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Azzi Abdelmalek
le 10 Sep 2013
Modifié(e) : Azzi Abdelmalek
le 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
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!