How can I extract the first non-zero in several specific segments of the same matrix?

5 views (last 30 days)
Phillip
Phillip on 5 Jul 2013
I'd like to find the first non-zero in several segments of the same large matrix.
For example: x = [3 2 3 4 5 6 6 8 6 10; 0 0 1 0 2 0 0 1 0 1]';
Now within x(1:3, :) and x(7:10, :) I'd like to extract the first non-zero in the second column and write out the corresponding value of the first column...no idea how...any help much appreciated. Patricia

Accepted Answer

Matt Kindig
Matt Kindig on 5 Jul 2013
ix1 = find(x(1:3,2),1,'first'); %index of first non-zero in x(1:3,2);
x1 = x(ix1,1); %corresponding first-column value
ix2 = find(x(7:10,2),1,'first'); %index of first non-zero in x(7:10,2);
x2 = x(ix2,1); %corresponding first-column value
  1 Comment
Phillip
Phillip on 5 Jul 2013
Thanks Matt for your reply - x2 not quite right (am after x2 = 8) but got it now...thanks for your time!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!