Effacer les filtres
Effacer les filtres

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

1 vue (au cours des 30 derniers jours)
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?

Réponse acceptée

Mathieu NOE
Mathieu NOE le 12 Déc 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 commentaires

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by