How can I extract the first non-zero in several specific segments of the same matrix?
1 view (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
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
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!