行列の重複している行を削除する方法
49 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
HIRO HAGI
am 26 Okt. 2020
Kommentiert: HIRO HAGI
am 26 Okt. 2020
同じ要素を持った行がいくつかある際、上の行1行だけを残して残りを削除したいと考えています。
削除したあとの行列の並びはそのままです。
unique関数を利用して試行錯誤しているのですがうまくいきません。
以下具体例を挙げます。
例えば以下のような行列を考えます。
A= [1, 0, 1, 1, 1 ; 0, 1, 1, 0, 0 ; 0, 0, 0, 1, 1 ; 1, 0, 1, 1, 1 ; 1, 1, 0, 1, 1 ; 0, 0, 0, 1, 1]
このとき1行目と4行目、3行目と6行目がそれぞれすべて同じ要素を持っています。
1行目と3行目を残して4行目と6行目を削除する方法はありますでしょうか。
1行目から2行目、3行目...と見ていった際に重複していたら削除する、というものになります。
例での最終的にほしい行列は
B= [1, 0, 1, 1, 1 ; 0, 1, 1, 0, 0 ; 0, 0, 0, 1, 1 ; 1, 1, 0, 1, 1 ; ]
になります。
0 Kommentare
Akzeptierte Antwort
Akira Agata
am 26 Okt. 2020
unique 関数の順序フラグを 'stable' に指定することで実現可能かと思います。
A = [1, 0, 1, 1, 1 ; 0, 1, 1, 0, 0 ; 0, 0, 0, 1, 1 ; 1, 0, 1, 1, 1 ; 1, 1, 0, 1, 1 ; 0, 0, 0, 1, 1];
B = unique(A,'stable','rows');
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!