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

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 个评论

how did
A={[3 11];[6 5 8];[ 11 5];[5]};
become
A={[3 11];[6 5 8];[];[]};
Yes, that is my question! i want to keep the structure
@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.

请先登录,再进行评论。

 采纳的回答

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

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Operators and Elementary Operations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by