필터 지우기
필터 지우기

Delete row with same value but in different columns

조회 수: 3 (최근 30일)
Danilo Sanfilippo
Danilo Sanfilippo 2019년 7월 24일
답변: Jeroen Houwen 2021년 6월 24일
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

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

답변 (2개)

madhan ravi
madhan ravi 2019년 7월 24일
편집: madhan ravi 2019년 7월 24일
Wanted = unique(sort(matrix,2),'rows')
%or perhaps you want:
[~,idx] = unique(sort(matrix,2),'rows');
Wanted = matrix(idx,:)
  댓글 수: 2
Danilo Sanfilippo
Danilo Sanfilippo 2019년 7월 24일
Unfortunately it is not what i asked for, but many thanks.
basically i want to delete just one of this row.
According with the previuos example
when i have [2 9; ...; 9 2 ] i want to delete just one of this row.
P.s. the previous code delete other row that were not double
many thanks
madhan ravi
madhan ravi 2019년 7월 24일
Instead of describing, why not show the desired output???

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


Jeroen Houwen
Jeroen Houwen 2021년 6월 24일
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

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by