zqq0ew0的个人博客分享 http://blog.sciencenet.cn/u/zqq0ew0

博文

分享一个自己编写的工具-Matlab自动补全缺失日期

已有 4914 次阅读 2018-3-22 10:35 |个人分类:Matlab|系统分类:科研笔记

功能:自动根据最早和最晚的日期进行补全中间缺失的日期(包含其他内容)。代码中的最小时间间隔是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];

%%





https://blog.sciencenet.cn/blog-628499-1105146.html

上一篇:安装Linux版的hysplit及相关问题集锦-系统Centos
下一篇:分享一个自己编写的工具-Matlab求小时均值
收藏 IP: 114.242.25.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-28 00:54

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部