MATLAB: Finding the start and end indices of 3 or more repeating 0’s.

arrayconsecutiveindexrepeating

For the array A=[NaN NaN NaN NaN 0 0 0 NaN NaN 0 0 0 0 NaN NaN 0 0]
I need to find the start and end indices of the '0' runs with greater than or equal to 3 zeroes in a row.
So for A, the values I want returned are [5 7;10 13].

Best Answer

A=[NaN NaN NaN NaN 0 0 0 NaN NaN 0 0 0 0 NaN NaN 0 0]
ii=A==0
ii1=strfind([0 ii 0],[0,1])
ii2=strfind([0 ii 0],[1,0])-1
idx=ii2-ii1+1>=3
out=[ii1(idx)' ii2(idx)']