重複したデータを削除する方法
34 ビュー (過去 30 日間)
古いコメントを表示
重複したデータを削除する方法を教えてください。
具体的には下記のような処理を行いたいと考えています。
A = [600 142 30 75 13; 600 141 30 75 14; 600 142 30 80 14]
Aの5列目の値が他の行の5列目の値と重複している場合に、行数が小さいほうの行を削除したいです。
この場合は1行目と2行目の5列目の値が重複しているので、1行目を削除して、下記のBのような行列を求めたいと考えています。
B=[600 141 30 75 14; 600 142 30 80 14]
uniqueを使えばできそうなのですが、うまくいきません。
宜しくお願い致します。
0 件のコメント
採用された回答
Akira Agata
2020 年 9 月 18 日
findgroups と splitapply を使う方法はいかがでしょうか?
A = [600 142 30 75 13; 600 141 30 75 14; 600 142 30 80 14];
group = findgroups(A(:,4));
B = splitapply(@(x) x(end,:), A, group);
実行結果は以下のとおりです。
>> B
B =
600 141 30 75 14
600 142 30 80 14
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で ワークスペース変数と MAT ファイル についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!