Conditional Skip in for loop

2 views (last 30 days)
Sarah Aimen
Sarah Aimen on 10 Jul 2019
Answered: Image Analyst on 10 Jul 2019
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,

Accepted Answer

Matt J
Matt J on 10 Jul 2019
Edited: Matt J on 10 Jul 2019
Apply the suggestions in this thread to A=logical(x)+1.
  4 Comments
Matt J
Matt J on 10 Jul 2019
Sarah's comment relocated here
Perfect! Works very well!
Thank you very much, Matt!
Matt J
Matt J on 10 Jul 2019
You're welcome. Please Accept-click the answer, though, to certify that we solved it.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst 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)

Tags

Community Treasure Hunt

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

Start Hunting!