Effacer les filtres
Effacer les filtres

Counting a groupe of zeros

1 vue (au cours des 30 derniers jours)
Nick van der maat
Nick van der maat le 5 Mai 2015
Commenté : Image Analyst le 5 Mai 2015
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
  1 commentaire
Azzi Abdelmalek
Azzi Abdelmalek le 5 Mai 2015
Give an example

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 5 Mai 2015
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 commentaires
Nick van der maat
Nick van der maat le 5 Mai 2015
Thanks ! this works just fine!
Image Analyst
Image Analyst le 5 Mai 2015
You're welcome. If this answers your question best, then maybe you can officially "Accept" the answer and/or vote for it.

Connectez-vous pour commenter.

Plus de réponses (1)

Hooman Habibi
Hooman Habibi le 5 Mai 2015
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)

Catégories

En savoir plus sur Get Started with MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by