## Conditional Skip in for loop

### Sarah Aimen (view profile)

on 10 Jul 2019
Latest activity Answered by Image Analyst

on 10 Jul 2019

### Matt J (view profile)

Hello,
I have a data array like:
x = [0, 0, 45, 43, 42, 41, 0 , 0 , 0, 0, 45, 43, 42, 41 ];
In my data points, 2 times my data became non-zero. Which I call them an "event".
I want my code to calculates the number of events as "2".
and calculate the sume of numbers at each event.
I'd appreciate your help at this matter.
Thanks,

on 10 Jul 2019
Edited by Matt J

### Matt J (view profile)

on 10 Jul 2019

Apply the suggestions in this thread to A=logical(x)+1.

Show 1 older comment
Matt J

### Matt J (view profile)

on 10 Jul 2019
Just use a while loop, then:
x = [1, 2, 45, 43, 42, 41, 6 , 2, 7];
i=0;
while i<length(x)
i=i+1;
if x(i) > 10;
x(i)
i = i + 3;
end
end
Matt J

### Matt J (view profile)

on 10 Jul 2019
Sarah's comment relocated here
Perfect! Works very well!
Thank you very much, Matt!
Matt J

### Matt J (view profile)

on 10 Jul 2019
You're welcome. Please Accept-click the answer, though, to certify that we solved it.

### Image Analyst (view profile)

on 10 Jul 2019

Try this (requires the Image Processing Toolbox, which you probably already have):
x = [0, 0, 45, 43, 42, 41, 0 , 0 , 0, 0, 45, 43, 42, 41 ];
% Count number of non-zero regions: (requires Image Processing Toolbox)
[~, numNonZeroRegions] = bwlabel(x)
% Compute sum of values
props = regionprops(x>0, x, 'PixelValues');
sumOfValues = sum(vertcat(props.PixelValues), 2)