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.

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2019년 5월 15일
편집: Jan 2019년 5월 15일
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에 대해 자세히 알아보기

질문:

2019년 5월 14일

댓글:

2019년 5월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by