For example,
A = [ -1 0 -2 0 0
2 8 0 1 0
0 0 3 0 -2
0 -3 2 0 0
1 2 0 0 -4];
how can I get a vector of the first nonzero elements of each row?
You can use max
:
>> [sel, c] = max( A ~=0, [], 2 );
Rows for which sel
equalse zero - are all zeros and the corresponding column in c
should be ignored.
Result:
>> [sel c]= max( A~=0, [], 2 )
sel =
1
1
1
1
1
c =
1
1
3
2
1
In order to find the first non-zero row index (for each column) you just need to apply max
on the first dimension:
>> [sel r] = max( A~=0, [], 1 );
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With