MATLAB: Find pattern of ones

onespattern

I have a matrix of ones and zeros for example: A=[ 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 ];
I need to find the number of patterns of [1 1 1 1] without overlapping. So, for example the matrix [1 1 1 1 1 1 1 1] should be considered to have 2 patterns and the matrix [1 1 1 1 1 1] should be considered to have only 1 pattern. Can anyone help? Thanks in advance!

Best Answer

A=[ 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 ];
a=[0 A 0];
ii1=strfind(a,[0 1]);
ii2=strfind(a,[1 0])-1;
out=fix((ii2-ii1+1)/4)
Related Question