Calculate consecutive values from annual data to monthly have a yearly timetable (events(1X365)) and I want to find how many consecutive values are equal to 1 for every mont

2 views (last 30 days)
I have a yearly timetable (events(1X365)) and I want to find how many consecutive values are equal to 1 for every month. Right now the below code calculates the consecutive ones (1) for January:
f= find(diff([0; (events{1,1}); 0]==1));
events_Jan= [f(1:2:end-1) f(2:2:end)-1 (f(2:2:end)-1-(f(1:2:end-1))+1)];
Max_conseq_for_January=max(events_Jan(:,3));
How can I create a loop for all the 12 months?

Accepted Answer

Mathieu NOE
Mathieu NOE on 12 Dec 2022
hello
well a simple for loop will do the job
your result in now an array of length 12 : Max_conseq
load('events.mat')
for m =1:numel(events) % loop over month
f= find(diff([0; events{m} ; 0]==1));
events_this_month= [f(1:2:end-1) f(2:2:end)-1 (f(2:2:end)-1-(f(1:2:end-1))+1)];
Max_conseq(m) = max(events_this_month(:,3));
end
  4 Comments

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!