2015-04-09 2 views
-3

У меня есть осадки и другие данные за длительный период. Я бы хотел получать ежедневные значения из этих почасовых данных. Мои дневные значения должны начинаться с часа 1 до 24 часа.Как конвертировать почасовые данные о дождевых осадках в дневной дождь

Year Month Day Hour Rain RH Temp 

1976 1  1 1  3.4 60 16 

1976 1  1 2  0  80 18 

1976 1  1 3  NaN 50 18 
+2

Где ваши проблемы? При чтении файла, в расчетах? Пожалуйста, напишите любой код, который у вас уже есть, и опишите, где вы столкнулись с проблемами. – hbaderts

+0

Привет, Filburt, я действительно не знаю, с чего начать, я новичок в Matlab/programming.I есть 35 лет почасовых данных, мне нужно рассчитать среднее количество осадков в день, RH и Temp. Благодаря! –

ответ

0

Во-первых, избавитесь от NaN, потому что, например, 1+NaN=NaN, поэтому он уничтожает любое суммирование, среднее и т.д.

Затем вы можете сделать, например, просто:

% M_hourly is a matrix with rows [Year Month Day Hour Rain RH Temp] 
[H,W]=size(M_hourly);  
for ii=1:24:H 
    Rain=M_hourly(ii:ii+23,5); 
    Rain_daily(ii)=sum(Rain); 
end 

Вы должны prealocate в Rain_daily, потому что он растет внутри цикла.
Я мог бы быть более добрым, если вы предоставите нам более конкретные вопросы. Я просто догадываюсь, в чем проблема.

+0

Хорошо, если вы хотите получить среднее значение, а не сумму, используйте 'mean', а не' sum'. :-) –

+0

Извините за непонятный вопрос. Мне нужно создать новую матрицу, где она будет показывать: Год, Месяц, День, среднее количество осадков (в среднем час 1 час 24). Это проливает больше света на мой предыдущий вопрос? –

+0

ОК, реализуйте предлагаемый код как функцию и дайте 'Rain_daily' выход. Проверьте, являются ли данные разумными, а затем скорректируйте год, месяц, день. –

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