Compare the rows of two cell arrays?
15 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Let's say we have two cell arrays, a and b. a={1, 2; 3, 4; 5, 6; 7, 8} and b={1, 2; 3, 4; 5, 6; 7, 8}. How would I go about comparing the two arrays such that each row is compared to make sure that each row in b only contains numbers from the same row of a. So for example, the a(1,:)={1, 2} and b(1,:)={1,2}. This is fine, however, if b(1,:)={4,2}, an error would popup. Also, using the example from above, if b(1,:)={1}, this would be fine also. Length doesn't matter as long as its not longer than the same row of a. Any ideas?
2 Commenti
Image Analyst
il 21 Lug 2017
Why are you using cells arrays for a and b instead of regular numerical arrays?
Also b(1:,:) is a 1 by 2 cell array - the first row of b - so it cannot be {1} since that is only one cell, not two cells like you'd need to have an entire row of b.
Risposte (1)
Ari
il 21 Lug 2017
It will be a good idea to convert the cell arrays to numeric matrices before doing the comparison. The following line of code will return a logical array with zeros in rows which do not satisfy your condition.
check = ismember(cell2mat(b), cell2mat(a), 'rows')
0 Commenti
Vedere anche
Categorie
Scopri di più su Cell Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!