MATLAB: How to count consuctive 0’s inbetween values of 1

counting 1's and 0's

I have really long code that does what I want, but I wanted to try to find a faster code to do this, for loop is taking forever. for example I have a vector of:
count = [0; 1; 0; 0; 0; 1; 0; 1; 1; 1; 0; 0; 0; 1; 0; 1; 1; 0; 0]
What I would like for an answer is the consecutive 0's between the ones… so,
ans =
1
3
1
0
0
3
1
0
2
Here is what I have to do it, (count coming in is the 1 and 0 vector list), the output is "store":
for m = 1:size(count,1)
store = 0;
countlast = 0;
j = 0;
if (sum(count)>=1)
for n = 1:size(count,1)
if count(n) == 0
countlast = countlast + 1;
else
j = j + 1;
store(j) = countlast;
countlast = 0;
end
end
j = j + 1;
store(j) = countlast;
end
end
store'
If there is a faster way of doing this Please help me out! Thanks, Chris

Best Answer

This is a fun one.
Try
count = reshape(count,1,[]); % make it a row vector
store = [nnz(cumsum(count)==0),...
diff(find(count))-1,...
nnz(cumsum(count)==max(cumsum(count)))-1]