Delete row with same value but in different columns
Mostrar comentarios más antiguos
I would like to eliminate rows in the matrix with the same value but in different columns
i want the couples are unique in all rows and in all columns
i used "unique" but it delete rows with same value in same columns
...
2 9 % this value is repeat
2 77
2 157
2 399
2 909
2 1247
3 76
3 175
3 398
3 1164
3 1294
4 82
4 169
...
9 2 % this value is repeat
9 10
9 257
...
i used this code but it is not work
for i = 1:length(A)
for j = i+1:length(A)
if ((A(i,1) ~= A(j,2)) && (A(i,2) ~= A(j,1)))
B(n,1) = n
B(n,2) = A(i,1)
B(n,3) = A(i,2)
n = n+1
end
end
end
4 comentarios
Danilo Sanfilippo
el 2 de Ag. de 2019
madhan ravi
el 2 de Ag. de 2019
Hmm doesn't it produce the same result as below??
Danilo Sanfilippo
el 2 de Ag. de 2019
madhan ravi
el 2 de Ag. de 2019
isequal(Wanted,D)
Respuestas (2)
madhan ravi
el 24 de Jul. de 2019
Editada: madhan ravi
el 24 de Jul. de 2019
Wanted = unique(sort(matrix,2),'rows')
%or perhaps you want:
[~,idx] = unique(sort(matrix,2),'rows');
Wanted = matrix(idx,:)
2 comentarios
Danilo Sanfilippo
el 24 de Jul. de 2019
madhan ravi
el 24 de Jul. de 2019
Instead of describing, why not show the desired output???
Jeroen Houwen
el 24 de Jun. de 2021
Dear Danilo,
I might have a simpler version that also works. It is probably a bit late but it is something!
stp = 0;
while stp < length(A)
stp = stp + 1;
A(A(:,1) == A(stp,2),:) = [];
end
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!