# How to compare rows in a matrix

68 views (last 30 days)
Sameer on 18 Jul 2014
Commented: Sameer on 18 Jul 2014
Hello all
I have a matrix A
A =
1 1 0 0 0
0 -1 0 1 0
-1 0 1 1 0
lets say I am looking at the second row in which column 2 and 4 have value present now if I compare it with the row above which has values in the column 1 and column 2 so I want to know the column number which has values in both the rows, I mean here the column number 2 should be returned. Similarly row 3 should be compared with row 1 and 2 and for each row a column number should be returned.
Can anyone please guide me through this.
Regards
Azzi Abdelmalek on 18 Jul 2014
Edited: Azzi Abdelmalek on 18 Jul 2014
What is the expected result for your example?

Azzi Abdelmalek on 18 Jul 2014
Comparison between row 1 and row 2
A =[ 1 1 0 0 0
0 -1 0 1 0
-1 0 1 1 0]
idx=find(all(A(1:2,:)))
Sameer on 18 Jul 2014
Thanks a lot

the cyclist on 18 Jul 2014
I think that
[rows,cols] = find(A(2:end,:)~=0 & A(1:end-1,:)~=0)
does what you want.
rows will be the index to the "top" row being compared, and "cols" will be the column numbers that meet your criterion.
rows = [1; 2];
and
cols = [2; 4];
cols seems to be the main thing you are going for.
##### 2 CommentsShowHide 1 older comment
Sameer on 18 Jul 2014
Thanks a lot