How to find longest lasting event

3 views (last 30 days)
Attaullah Shafiq
Attaullah Shafiq on 24 May 2020
Answered: ahmed ibrahim on 11 Jan 2021
How to find longest lasting event?
means i wanna Calculate the duration of each event as the difference between 2 function..
  1 Comment
dpb
dpb on 24 May 2020
If use the duration class variable, then it's a simple as subtraction...

Sign in to comment.

Answers (2)

Image Analyst
Image Analyst on 24 May 2020
What form is your event data in? Is it like a binary vector [0,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0]?
% 1's are in the event and 0's are where the event is not happening.
inEvent = logical([0,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0])
% Extract the longest one and sum up the number of indexes of it.
longestDuration = sum(bwareafilt(inEvent, 1))
inEvent =
1×16 logical array
0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0
longestDuration =
6
  7 Comments
dpb
dpb on 24 May 2020
@IA, groupsummary is relatively recent addition to the splitapply workflow toolkit -- R2018x? I think or thereabouts.
It's another case of essentially the same functionality as a Toolbox function being migrated to base product excepting w/ a different name and slightly different syntax.
Image Analyst
Image Analyst on 24 May 2020
Right you are. Cool, thanks. 👍

Sign in to comment.


ahmed ibrahim
ahmed ibrahim on 11 Jan 2021
What row in the data set does this correspond to (remember that min and max have a 2nd output that gives the row)?

Community Treasure Hunt

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

Start Hunting!