Counting a groupe of zeros

조회 수: 2 (최근 30일)
Nick van der maat
Nick van der maat 2015년 5월 5일
댓글: Image Analyst 2015년 5월 5일
Hello,
I am trying to count a group of zeros with a for loop.
But it keeps giving me the error Index must be a positive integer or logical.
Stops=0;
for i=1:size(TachographVehicleSpeed)
if (TachographvehicleSpeed(i)==0&&TachographvehicleSpeed(i-1)~=0)
Stops = Stops + 1;
end
end

채택된 답변

Image Analyst
Image Analyst 2015년 5월 5일
If you want to count groups of zeros, like the number of groups and number of zeros in each group, you can use regionprops() if you have the Image Processing Toolbox.
m = [1 0 0 0 1 1 0 0 1 0 0 0 0]; % Sample data
[labeledArray, numberOfZeroGroups] = bwlabel(m == 0);
stats = regionprops(labeledArray, 'Area');
zerosInEachGroup = [stats.Area]
Results:
numberOfZeroGroups = 3
zerosInEachGroup =
3 2 4
  댓글 수: 2
Nick van der maat
Nick van der maat 2015년 5월 5일
Thanks ! this works just fine!
Image Analyst
Image Analyst 2015년 5월 5일
You're welcome. If this answers your question best, then maybe you can officially "Accept" the answer and/or vote for it.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Hooman Habibi
Hooman Habibi 2015년 5월 5일
The index starts from zero so you must start the loop from i=2. you can also count the consecutive zeros in row vector z by the following one liner
numberOfZerosInZ=sum(abs([z 1])+abs([1 z])==0)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by