matlab产生时间数组以月为单位_使用MATLAB中的时间序列按天/小时计算值

本文介绍了如何使用MATLAB将字符串日期转换为序列日期,并通过ACCUMARRAY函数计算不均匀间隔时间戳之间的事件数。示例展示了在4天内5000个时间戳的计算过程,分别按天、小时和分钟统计事件数量。
摘要由CSDN通过智能技术生成

正如

others所建议的那样,您应该将字符串日期转换为序列日期编号.这样可以轻松使用数字数据.

计算每个间隔(天,小时,分钟等)事件数量的有效方法是使用HISTC和ACCUMARRAY之类的功能.该过程将涉及manipulating将序列日期转换为此类功能所需的单位/格式(例如ACCUMARRAY需要整数,而HISTC需要给出bin边来指定范围).

这是一个矢量化解决方案(无循环),它使用ACCUMARRAY来计算事件数.这是一个非常有效的功能(即使是大输入).在开始时,我生成一些5000个时间戳的样本数据,这些时间戳在4天的时间内不均匀间隔.你显然想用你自己的替换它:

%# lets generate some random timestamp between two points (unevenly spaced)

%# 1000 timestamps over a period of 4 days

dStart = datenum('2000-01-01'); % inclusive

dEnd = datenum('2000-01-5'); % exclusive

t = sort(dStart + (dEnd-dStart).*rand(5000,1));

%#disp( datestr(t) )

%# shift values, by using dStart as reference point

dRange = (dEnd-dStart);

tt = t - dStart;

%# number of events by day/hour/minute

numEventsDays = accumarray(fix(tt)+1, 1, [dRange*1 1]);

numEventsHours = acc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值