# Loop to check if 2 conditions are true for values 1:n, (1:n)+1, (1:n)+2, etc. in a vector and save ID

1 view (last 30 days)
Loriann Chevalier on 16 May 2022
Commented: Loriann Chevalier on 16 May 2022
Hi everyone,
I have a time series of daily precipitation (i.e. a vector of 365x1) and I would like to test 2 conditions :
• is the cumulative rainfall over 7 days > threshold (e.g. 10mm)
• are there at least 4 out of 7 days with precipitation (RF > 0mm)
I want to make a loop to take values 1:7, check whether the 2 conditions above are met, go to 2:8, 3:9, etc., until the first occurrence of a 7-days period for which both conditions are met. Then save the ID of the last day of the 7-days period (e.g. if the conditions are met first for 43:49, save the ID of interest is 49, I don't care about the value in the vector, only the ID).
I have no idea how to even start or what function to use, so any help is welcome.
Thanks !
##### 1 CommentShowHide None
KALYAN ACHARJYA on 16 May 2022
Start with example data, just for two weeks (generate random data), it can be possible.

Sign in to comment.

### Accepted Answer

Torsten on 16 May 2022
for i=1:365-7+1
period = rainfall(i:i+6);
sum_period = sum(period);
n = numel(find(period>0));
if sum_period > threshold && n >= 4
ID = i+6;
break
end
end
##### 1 CommentShowHide None
Loriann Chevalier on 16 May 2022
This is exactly what I was hoping for. Thank you very much!

Sign in to comment.

### Categories

Find more on Tables 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!