clc;
clear;
% 此脚本中对于选取的时间阈值进行判断
data = xlsread('整理完的数据.xlsx','9-27X');
% 获取SO2均值数据 CO2均值数据
[datar,datac] = size(data);
avgSO2 = data(:,datac - 1);
avgCO2 = data(:,datac);
[avgSO2r,avgSO2c] = size(avgSO2);
% avgSO2FirstStep=[];
% count = 1;
for r = 1:avgSO2r
rs = avgSO2(r);
if (rs < 0) || (rs > 5)
% avgSO2FirstStep(count,1) = rs;
% count = count+1;
avgSO2(r) = nan;
end
end
% 第一步整理avgCO2数据
[avgCO2r,avgCO2c] = size(avgCO2);
% avgCO2FirstStep=[];
% count = 1;
for r = 1:avgCO2r
rs = avgCO2(r);
if (rs < 0) && (rs > 5000)
% avgCO2FirstStep(count,1) = rs;
% count = count+1;
avgCO2(r) = nan;
end
end
% 每十条数据存储在processSO2的一行当中
processSO2 = [];
count = 1;
% 标志processSO2中的当前存储行数
processSO2Row = 1;
% 滑窗的初始位置、结束位置
slideWindowStart = 0;
slideWindowEnd = 0;
% 步长
step = 10;
% 获取avgSO2的行列
[avgSO2r,avgSO2c] = size(avgSO2);
for r = 1:avgSO2r
slideWindowStart = r;
slideWindowEnd = slideWindowStart + step - 1;
if slideWindowEnd == avgSO2r
for eachStep = slideWindowStart:avgSO2r
processSO2(processSO2Row,count) = avgSO2(eachStep);
count = count + 1;
end
break;
end
for eachStep = slideWindowStart:slideWindowEnd
processSO2(processSO2Row,count) = avgSO2(eachStep);
count = count + 1;
end
% 一次滑窗结束后,当前存储行数、count位、滑窗的开始结束位置都发生改变
processSO2Row = processSO2Row + 1;
count = 1;
end
matlab中实现滑动窗口的方法
最新推荐文章于 2024-06-23 11:24:54 发布