find common elements of the same row

조회 수: 6 (최근 30일)
Anuradha
Anuradha 2016년 6월 21일
답변: Shameer Parmar 2016년 6월 21일
hello, I need to find rows that have the same number in the same row eg (1 1).
  • s1 0 0 0 1 0 0 1
  • s2 1 0 0 0 0 1 0
How do I do that. I have an array of (40x1000) and I need to do that for every 2 columns and store the data in a separate file.
Thank you in advance

채택된 답변

Shameer Parmar
Shameer Parmar 2016년 6월 21일
You can do this..
let us consider, you have following input matrix..
A = [1 2 3 4 5 6 7 8 9; 1 2 3 4 3 2 2 5 7; 9 8 7 6 5 4 3 2 1; 1 2 3 4 5 6 7 8 9; 1 2 3 4 3 2 2 5 7]
A =
1 2 3 4 5 6 7 8 9
1 2 3 4 3 2 2 5 7
9 8 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 9
1 2 3 4 3 2 2 5 7
% as you want to check same numbers in rows, so you need to check it row wise as follows..
count = 1;
for i = 1:size(A,1)
if length(A(i,:)) ~= length(unique(A(i,:)))
rowIndex(count) = i;
count = count + 1 ;
end
end
Output will be the new array, which will give you the row numbers (indices), which is having the same numbers in it..
Output:
rowIndex =
2 5

추가 답변 (2개)

KSSV
KSSV 2016년 6월 21일
doc unique.... by the way s1 0 0 0 1 0 0 1 have common [1 0]

Shameer Parmar
Shameer Parmar 2016년 6월 21일
This is another Answer from my side..
If you have array of 40x1000, and all row and column contains 0's and 1's..
and you want to check if any row contains more than one 1's irrespective of 0's...then you can do this..
count = 1;
for i = 1:size(A,1)
if sum(A(i,:)) >= 2
rowIndex(count) = i;
count = count + 1 ;
end
end

카테고리

Help CenterFile Exchange에서 Operators and Elementary Operations에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!

Translated by