maltab datenum函数与正则表达式巧用:逐日数据转为逐月数据、日序转月序

您所在的位置:网站首页 逐月什么意思 maltab datenum函数与正则表达式巧用:逐日数据转为逐月数据、日序转月序

maltab datenum函数与正则表达式巧用:逐日数据转为逐月数据、日序转月序

2024-07-13 04:05:27| 来源: 网络整理| 查看: 265

引言与示例:datenum日序转月序

在处理数据时,我们经常需要将逐日数据转为逐月数据,这就需要我们知道日序对应的月序,比方说,我有2019年一整年的天数据共365个,我知道这个文件代表的是2018年的第几天?那么我如何知道它是2018年的第几个月呢? 如果直接上网搜索你会发现一个常见的思路:首先判断是闰年还是非闰年,然后给出每个月都日期总数,编写函数来计算。 这方法当然可行,但却是基于C语言的一种操作,实际上,利用matlab的datenum函数,我们只用一行代码就能实现这个过程。

function mon= day2mon(year,daynum) % year为年份,daynum为日序列 mon=month(datenum(year,1,0)+daynum); end

比如说,我想知道2020年第234天是第几个月,我们只要输入:day2mon(2020,234)即可。 在这里插入图片描述

利用正则表达式提取日期

当然,这种方法有一个要求,即,逐日数据需要完整,文件命名按照日序排列。 这时候我们再用日序似乎就不再适用了,这时如果你的文件名如果包含了日期的话,可以构造一个正则表达式提取。 比如说我这个文件: 在这里插入图片描述 2006年逐日海冰,本来应当有365天,却只有364个数据,不知道哪儿缺了,这时可以构造正则表达式把月份从文件名里提出来。 文件名的命名规则:“POGOC_OUC_AMSR-E_DTASI_n_sic_YYYYMMDD.hdf”,命名相当有规律,通过正则表达式可以很轻松地提取。

numstr=regexp(str,'\d{8}','match')

返回 在这里插入图片描述 然后将其转换为数值型,再用datenum返回月序即可。

numdate=str2num(numstr{j}{1}); mon(j)=month(datenum(numdate)) 具体应用-15年海冰日数据转月数据

下面我们来讲讲一下具体的运用过程, 我们的目的是:将2005-2019年的海冰日数据转为月数据。 首先定义一下年份:year=2005:2019 然后先批量读个数据文件(hdf格式),为了避免过于复杂,我们先算一年的吧,这时,i=1,year(i)=2005。 先批量读个文件:

files=dir([path,num2str(year(i)),'\*.hdf']); fullname=cell(1,length(files)); seaice=cell(1,length(files)); filename=cell(1,length(files)); % 读取逐日数据 for n=1:length(files) fullname{n}=[path,num2str(year(i)),'\',files(n).name]; seaice{n}=hdfread(fullname{n},'OUC_SIC'); filename{n}=files(n).name; end

然后用我们正则,提取出月序:

daynum=1:length(files); numstr=regexp(filename,'\d{8}','match'); mon=zeros(1,length(numstr));

将提取的月序与索引一一对应,由于存在元胞数组里,先用cat函数拼接,再相加。

for m=1:12 d=seaice(mon==m); monsic{12*(i-1)+m}=mean(cat(3,d{:}),3); end

完成。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭