MATLAB Answers

Compare the rows of two cell arrays?

17 views (last 30 days)
Ibro Tutic
Ibro Tutic on 21 Jul 2017
Answered: Ari on 21 Jul 2017
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 Comments
Ibro Tutic
Ibro Tutic on 21 Jul 2017
Sorry, the cell arrays are used because they are inputs from (b is the inputs)
inputdlg
a is the cell array that comes from some data that is pulled from various files. the data comes in as strings and is stored as a cell array.
And I thought I might have made that mistake but I wasn't sure. I guess I just need to compare the number to make sure it still matches a number in a.

Sign in to comment.

Answers (1)

Ari
Ari on 21 Jul 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')

Community Treasure Hunt

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

Start Hunting!

Translated by