Conditional Skip in for loop

2 次查看(过去 30 天)
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,

采纳的回答

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

请先登录,再进行评论。

更多回答(1 个)

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

类别

Help CenterFile Exchange 中查找有关 Geometric Transformation and Image Registration 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by