How to remove the duplicate in the cell array but still keep the array structure?

2 views (last 30 days)
A={[3 11];[6 5 8];[ 11 5];[5]};
I wonder if there is any way to remove the duplicate numbers in A but still keep the dimension of the cell array? like
A={[3 11];[6 5 8];[];[]};
appreciate your time!
  3 Comments
Jan
Jan on 15 May 2019
@Hang Vu: You forgot to explain, which operation you want to apply. Why does "remove the duplicate in the cell array" produce the output for the shown input? Let me guess:
If a number occurs in an element of the cell, remove it from all subsequent elements.

Sign in to comment.

Accepted Answer

Jan
Jan on 15 May 2019
Edited: Jan on 15 May 2019
A = {[3 11];[6 5 8];[ 11 5];[5]};
for iA = 1:numel(A)
a = A{iA};
for jA = iA + 1:numel(A)
A{jA} = A{jA}(~ismember(A{jA}, a));
end
end
Or:
list = A{1};
for iA = 2:numel(A)
A{iA} = A{iA}(~ismember(A{iA}, list));
list = union(list, A{iA})
end

More Answers (0)

Community Treasure Hunt

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

Start Hunting!