2015-02-22 3 views
-1

У меня есть данные по речным потокам в течение 1975-2009 гг., И меня просят найти 7 последовательных дней в течение каждого года с наименьшими потоками.Группа последовательных минимальных значений в данных - MATLAB

Любой совет, как начать это? Я использую MATLAB только пару недель.

Спасибо!

ответ

0

Начинать с нахождения суммарной суммы с помощью cumsum. Разница между суммарными суммами 7 дней друг от друга даст вам общее количество за эти 7 дней. Затем выберите minimum.

a = cumsum(flow); 
b = a(8:end) - a(1:end-7); 
[m,i] = min(b); 

Здесь m имеет наименьшее общее в течение 7 дней подряд, и i вектор индексов говорит вам, когда они произошли.

1

Вы можете свертку данных с ones(1,7) и искать минимум, который позволит получить стартовый день Вашего сухого периода:

[~,startingDay] = min(conv(flow,ones(1,7),'valid')) 

(Это в основном фильтр скользящего среднего значения без нормализации). Проходите через годы, чтобы получить результат каждого года.

Смежные вопросы