matlab补全数据,科学网—分享一个自己编写的工具-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];

%%

转载本文请联系原作者获取授权,同时请注明本文来自周勤迁科学网博客。

链接地址:http://blog.sciencenet.cn/blog-628499-1105146.html

上一篇:安装Linux版的hysplit及相关问题集锦-系统Centos

下一篇:分享一个自己编写的工具-Matlab求小时均值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值