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

3 次查看(过去 30 天)
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 个评论
Matt J
Matt J 2020-8-26
编辑:Matt J 2020-8-26
How do you know which of the duplicates to keep? Why couldn't you keep the first two rows instead of the last two?
SM
SM 2020-8-26
That's really not matter for my case. I just want to delete the duplicate rows based on the 2nd column.

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2020-8-26
编辑:Matt J 2020-8-26
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,:);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by