Find unique rows (including rows with reverse x,y) in matrix of x,y coordinates

조회 수: 3 (최근 30일)
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
Peyman Obeidy
Peyman Obeidy 2018년 9월 25일
I think it is only looking at x1=x2 and y1=y2. Is this right?
Peyman Obeidy
Peyman Obeidy 2018년 9월 25일
Thank you KSSV for always being helpful too.

댓글을 달려면 로그인하십시오.

채택된 답변

Bruno Luong
Bruno Luong 2018년 9월 25일
편집: Bruno Luong 2018년 9월 25일
Try
[~,i] = unique(sort(data(:,1:2),2),'rows')
data(i,:)
  댓글 수: 3
Bruno Luong
Bruno Luong 2018년 9월 25일
편집: Bruno Luong 2018년 9월 25일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by