matlab 得到周几,在matlab中计算周数

这篇博客探讨了如何在Matlab中处理年度时间序列数据,特别是计算每周的24小时平均值。作者提到使用`weeknum`函数,但该函数属于财务工具箱。提供了一个替代方案,通过计算日期之间的差值除以7来获取周数,并用`arrayfun`应用到整个时间序列上。这种方法可以帮助用户避免使用额外的工具箱函数。
摘要由CSDN通过智能技术生成

我有一个年度时间序列,每小时记录一次测量:

StartDate = '2011-01-01 00:00';

EndDate = '2011-12-031 23:00';

DateTime=datevec(datenum(StartDate,'yyyy-mm-dd HH:MM'):60/(60*24):...

datenum(EndDate,'yyyy-mm-dd HH:MM'));

dat = 2+(20-2).*rand(size(DateTime,1),1);

我想计算一年中每周的平均24小时周期,即第1周,第1年到第7天,我想计算平均00:00,01:00 ……等等,最后我将以52,24小时系列结束,即一年中每周一个. Matlab确实有一个名为’weeknum’的函数,它返回给定seriel日期编号的周数,但是,这个函数在财务工具箱中.任何人都可以提出一种寻找周数的替代方法吗?

最佳答案 也许这可以有所帮助(我使用当前的日期和时间作为例子):

c = datevec(datestr(now));

week_num = ceil(diff(datenum([c(1), 1, 1, 0, 0, 0; c])) / 7)

我不确定这个解决方案如何正确处理边缘情况,但我认为这是一个很好的起点.

您也可以使用this website验证它,告知当前的周数.

将此应用于您的示例可以完成,例如,如下所示:

weeknum = @(v)ceil(diff(datenum([v(1), 1, 1, 0, 0, 0; v(:)'])) / 7);

arrayfun(@(n)weeknum(DateTime(n, :)), 1:size(DateTime, 1))'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值