Find unique rows (including rows with reverse x,y) in matrix of x,y coordinates
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Peyman Obeidy
am 25 Sep. 2018
Kommentiert: Peyman Obeidy
am 25 Sep. 2018
Hi, I would appreciate your comments on this problem.
I would like to extract unique coordinates for example if x=1, y=2, then this point is similar to y=2,x=1 and only one pair is kept.
x y
1 2
2 1
2 3
3 2
I have tried two approaches; A) using unique comments
[uniqueA M2 M3] = unique(data(:,[1:2]),'rows'); This found no unique row
b) a for loop which I couldn't complete
for j=1:358
clear row3
[row1,col1,v1]=find(data(j,1));
[row2,col2,v2]=find(data(j,2));
[row3,col3,v3]=find(data(:,2)==v1 & Tab_Vn_values2(:,1)==v2);
Tab_Vn_valuesTest(j,:)=Tab_Vn_values2(row3,:);
end
Thank you for your time
3 Kommentare
Akzeptierte Antwort
Bruno Luong
am 25 Sep. 2018
Bearbeitet: Bruno Luong
am 25 Sep. 2018
Try
[~,i] = unique(sort(data(:,1:2),2),'rows')
data(i,:)
3 Kommentare
Bruno Luong
am 25 Sep. 2018
Bearbeitet: Bruno Luong
am 25 Sep. 2018
nothing mysterious
if you want pair (x1,y1) matches the pair (x2,y2) regardless if you swap x and y (in other word after applying any permutation of 2 elements), meaning that if and only if you sort them they matches in order. Sorting a permuted array will bring them back to a unique state.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices 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!