Comparing cell arrays for same values?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Azzi Abdelmalek
am 10 Sep. 2013
Bearbeitet: Azzi Abdelmalek
am 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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!