MATLAB Answers

How can I delete the duplicate rows in cell based on a particular column?

1 view (last 30 days)
SM
SM on 26 Aug 2020
Commented: SM on 26 Aug 2020
The input is:
A={[1 2 3] [2 3] [1 2 3];[2 5 8] [3 4] [1 2 3];[2 5 4] [2 3] [1 2 3];[1 2 5] [3 4] [1 2 3]};
based on the duplication in the 2nd column,the output will be:
B={[2 5 4] [2 3] [1 2 3];[1 2 5] [3 4] [1 2 3]};
How can I do that?
  2 Comments
SM
SM on 26 Aug 2020
That's really not matter for my case. I just want to delete the duplicate rows based on the 2nd column.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 26 Aug 2020
Edited: Matt J on 26 Aug 2020
This assumes the second column always contains vectors of the same length, and also that you want to keep only the last occurence.
[~,idx]=unique(cell2mat(A(:,2)),'rows','last');
B=A(idx,:);

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by