Find unique rows (including rows with reverse x,y) in matrix of x,y coordinates
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Peyman Obeidy
el 25 de Sept. de 2018
Comentada: Peyman Obeidy
el 25 de Sept. de 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 comentarios
Respuesta aceptada
Bruno Luong
el 25 de Sept. de 2018
Editada: Bruno Luong
el 25 de Sept. de 2018
Try
[~,i] = unique(sort(data(:,1:2),2),'rows')
data(i,:)
3 comentarios
Bruno Luong
el 25 de Sept. de 2018
Editada: Bruno Luong
el 25 de Sept. de 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.
Más respuestas (0)
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!