Info

この質問は閉じられています。 編集または回答するには再度開いてください。

how to find a window of days in a time series data with values in a range

1 回表示 (過去 30 日間)
nlm
nlm 2020 年 5 月 1 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I have a time series data from which I need to find a window of days where the start value is >0.4 and end value is <0.2. However, the values in that window range between 0.4 and 0.2. I have this so far. However, my code is finding all values which have a decreasing trend for 10 days.
AA = data;
s = [0;diff(AA)];
ss = sign(s);
ss(AA<0.4)=-1;
ss= ss';
c = conv2(ss,win , 'valid');
win = ones(1,10)*-1;
p = find(conv2(ss, win, 'valid') == -1);
  2 件のコメント
Ameer Hamza
Ameer Hamza 2020 年 5 月 1 日
Can you share the data? I there a single window or several windows between 0.2 and 0.4?
nlm
nlm 2020 年 5 月 2 日
Thanks Ameer for taking it up. Please find the data attached.

回答 (1 件)

Ameer Hamza
Ameer Hamza 2020 年 5 月 2 日
編集済み: Ameer Hamza 2020 年 5 月 2 日
This shows the window of days in which the the value is within the specified range
data = load('data.mat');
AA = data.AA;
mask = (0.2 < AA) & (AA < 0.4);
days = find(mask); % contain the days on which the data is in range
plot(mask)
ylim([-0.2 1.2])
  1 件のコメント
nlm
nlm 2020 年 5 月 4 日
Thanks!
But this code also considers an increasing trend. What it selected are values which increased from 0.4 to 0.2 and then increased from 0.2 to 0.4. However, I'm looking for all the values where its only shows an decrease from 0.4 to 0.2, and it need not be monotonically decreasing, there can be some increases but it can to be below 0.4.

Community Treasure Hunt

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

Start Hunting!

Translated by