||
功能:自动根据最早和最晚的日期进行补全中间缺失的日期(包含其他内容)。代码中的最小时间间隔是5分钟。如有其他需要可自行修改。
案例可参考网址:
http://bbs.06climate.com/forum.php?mod=viewthread&tid=59347
function [dataall]=match_loss_datetime(filename)
%% 功能:当日期不完整,自动补全缺失日期和相关数据,返回日期完整的数据
% 缺失日期必须在第一列
% 时间格式是正常的日期格式(必须是)
% 当前最小时间间隔为5分钟,后期再做更改
% 默认t_shift=5/60/24(5分钟)
% Author:zqq0ew0
% Date: 2018.3.12
%%
%% 主程序
[~,~,dataraw]=xlsread(filename); %
[~,row]=size(dataraw);
datetime=datenum(dataraw(2:end,1)); % 日期格式转数值型
[N,~]=size(datetime);
datetime1=cell(N,1);
% 统一时间格式
for i=1:N
datetime1(i)={datestr(datetime(i),'yyyy/mm/dd HH:MM')};
end
datetime2=datenum(datetime1);
ncell=5/60/24;
datetime3=[datetime2(1):ncell:datetime2(N)]'; %生产全的日期格式
[M,~]=size(datetime3);
dataall2=cell(M,row);
for j=1:M
dataall2(j,1)={datestr(datetime3(j),'yyyy/mm/dd HH:MM')};
end
% 查找缺失日期,进行补全
for k=1:N
[~,id]=ismember(datetime1(k),dataall2(:,1));
dataall2(id,2:row)=dataraw(k+1,2:row);
end
dataall=[dataraw(1,:);dataall2];
%%
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-4 05:29
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社