【MATLAB】计算最大8小时内滑动平均

计算臭氧( O 3 \text{O}_3 O3) 最大8小时内滑动平均

背景:同学在参加研究生数学建模比赛时需要对某时序数据求最大8小时滑动平均。 总的来说,问题比较简单,稍加注意和细心不难写出代码。应要求,本文代码主要通过matlab编写。

题目求解思路直接见代码注释

1 题目:

臭氧( O 3 \text{O}_3 O3) 最大8小时内滑动平均: 指一个自然日内8时至24时的所有8小时滑动平均浓度的最大值,其中8小时滑动平均值连续8小时平均浓度的算术平均值。其计算公式如下:
C O 3 = max ⁡ t = 8 , 9 , … , 24 { 1 8 ∑ i = t − 7 t c t } \mathrm{C}_{\mathrm{O}_{3}}=\max _{t=8,9, \ldots, 24}\left\{\frac{1}{8} \sum_{i=t-7}^{t} \mathrm{c}_{t}\right\} CO3=t=8,9,,24max{81i=t7tct}

 其中  c t  为臭氧在某日  t − 1  时至  t  时的平均污染物浓度。  \text { 其中 } c_{t} \text { 为臭氧在某日 } t-1 \text { 时至 } t \text { 时的平均污染物浓度。 }  其中 ct 为臭氧在某日 t1 时至 t 时的平均污染物浓度。 

2 数据

为了方便说明,在这里我们仅以图片给出部分数据信息

(完整数据可私信博主获取)

数据

3 代码:

clear all,clc,close all


%%
data = xlsread('sj-xxw(1).xls')  % 其中第五列是臭氧数据
[m,n]  = size(data)
o3 = data(:,5)  % 这是臭氧每小时的数据,24个小时一个周期。

%% 先将所有臭氧数据转为 每天一列的 矩阵数据

days = fix(m / 24)  % fix 向下取整

array_o3 = reshape(o3(1:days*24), [24, days])  % 转化为矩阵


%%  计算滑动平均
% 先直接将其复制成为  17*24   行的矩阵

array = repmat(array_o3,17,1)
% 提取我们想要的  【滑动窗格内的数据】
temp_all = []
for i = 1:17
    array_temp = array(i:i+7,:)
    temp = mean(array_temp)  % [mean1,mean2 ---mean3]
    temp_all = [temp_all;temp]
end

day_all = max(temp_all)  % days天里,每天的 臭氧最大8小时滑动平均
  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风惹人醉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值