find where number changes in a matrix

3 views (last 30 days)
I have a matrix of +1 and -1 values. I want to find where the number flips from 1 to -1 or vice versa where the change is a change from column to column.
X=[...
1 1 1 1;
1 -1 1 1;
1 1 1 -1;
1 1 1 1]
the answer should be [2,2],[2,3]and [3,4]. I tried
find(diff(X)==2);
find(diff(X)==-2);
Any help is appreciated

Accepted Answer

Cedric
Cedric on 23 Mar 2013
>> [r,c] = find(diff(X,1,2)) ;
>> loc = [r, c+1]
loc =
2 2
2 3
3 4

More Answers (1)

the cyclist
the cyclist on 23 Mar 2013
One way:
[i j] = find(abs([zeros(4,1),diff(X,[],2)])==2)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!