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

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 件)

カテゴリ

ヘルプ センター および File ExchangeData Types についてさらに検索

タグ

質問済み:

SM
2020 年 8 月 26 日

コメント済み:

SM
2020 年 8 月 26 日

Community Treasure Hunt

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

Start Hunting!

Translated by