MATLAB: Please help in this program. is to find the index of zeros which is in consecutive order which should more or equal to 5 time.

consecutive orderindex of zeros

a=[0,0,0,0,0,0,0,0,9,8,5,6,0,0,0,0,0,0,3,4,6,8,0,0,9,8,4,0,0,7,8,9,5,0,0,0,0,0,8,9,0,5,8,7,0,0,0,0,0]; [x,y]=size(a);
for i=0:y i+1; k=1; l=0; n=i; count=0;
while (a==0)
count+1;
break;
n+1;
end
if(count>=5)
v([]);
for l=k:l<n
v(m)=l+1;
m+1;
end
end
count=1;
i=n;
end
for i=o:i<m
i+1;
fprintf('index of continous zero more than 5 or equal=%d',v(i));
end

Best Answer

It's trivial if you have the Image Processing Toolbox:
a = [0,0,0,0,0,0,0,0,9,8,5,6,0,0,0,0,0,0,3,4,6,8,0,0,9,8,4,0,0,7,8,9,5,0,0,0,0,0,8,9,0,5,8,7,0,0,0,0,0];
% Measure lengths of all "0" regions.
measurements = regionprops(a == 0, 'Area', 'PixelIdxList');
% Get indexes of those regions that are >= 5 in length.
fiveLongRegions = find([measurements.Area] >= 5)
theIndexes = vertcat(measurements(fiveLongRegions).PixelIdxList)
% Get a logical output vector which is true if it's in a >=5 region.
output = false(1, length(a)); % Initialize
% Set elements = 1 if it's in a >=5 region.
output(theIndexes) = true