Check if one cell is comprised in other cells of an array?

2 views (last 30 days)
I have a variable, var (see attached .mat file), that is a 1x7 cell array. It has the following cells: {766×2 double} {766×2 double} {766×2 double} {766×2 double} {766×2 double} {766×2 double} {766×2 double}.
I want to see if each row of a cell is comprised in another one of the cells in the array. If every single row of a cell is comprised in any of the other cells, then delete that cell. How would I do that? For example, if each row in the first {722x2 double} cell is comprised in any of the other six {766x2}, then delete the first cell.

Answers (1)

Jan
Jan on 27 Jul 2018
Use ismember('rows') and a loop:
found = true;
for k = 2:7
found = found & ismember(v{1}, v{k}, 'rows');
end
v{1} = v{1}(~found);
  1 Comment
Andrew Poissant
Andrew Poissant on 27 Jul 2018
Edited: Andrew Poissant on 27 Jul 2018
how would I generalize this procedure to apply it to the other 6 cells in the array? Also, when I try this with my cell array I uploaded, all it is doing is deleting a row of cell one and some of the columns? What I am looking for is if every row in a cell is shared in any of the other cells in the array, then delete that cell from the array.

Sign in to comment.

Categories

Find more on Cell Arrays 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!