时间相关数据处理 - timetable

最近处理时间数据,感觉处理的好烦躁,有一种自己在写pandas的感觉。然后,搜了一下matlab,发现更新的函数我从来都没了解过啊!!一直用上古函数每次自己写函数简直是大怨种啊!!!!!!!

timetable 数据类型提供了很多种不同的方式来解决时间缺失、重复或不均匀时间问题。您也可以对数据重采样或聚合数据以创建一个规则时间表。当时间表为规则时间表时,其行时间已排序并且是唯一的,并且行时间之间具有均匀或等间距的时间步。

  • 要查找缺失的行时间,请使用 ismissing。
  • 要删除缺失的时间和数据,请使用 rmmissing。
  • 要按行时间对时间表进行排序,请使用 sortrows。
  • 要使时间表具有唯一和已排序的行时间,请使用 unique 和 retime。
  • 要创建规则时间表,请指定一个等间距时间向量并使用 retime。

  • 从excel等文件生成timetable

        TT = readtimetable(filename)

  • 适用文件格式

        readtimetable 基于文件的扩展名确定文件格式:

        .txt、.dat 或 .csv(适用于带分隔符的文本文件)

        .xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx 或 .ods(适用于电子表格文件)

  • 更改timetabl的属性

        TT.Properties.DimensionNames = {'Date','WeatherData'};

        TT.Properties

                ans =

                  TimetableProperties with properties:

             Description: ''

                UserData: []

          DimensionNames: {'Date'  'WeatherData'}

           VariableNames: {'Var1'  'Var2'  'Var3'}

    VariableDescriptions: {}

           VariableUnits: {}

      VariableContinuity: []

                RowTimes: [3x1 datetime]

               StartTime: 18-Dec-2015

              SampleRate: NaN

                TimeStep: 1d

        CustomProperties: No custom properties are set.

      Use addprop and rmprop to modify CustomProperties.

  • 创建timetable

TT = timetable(rowTimes,T,W,'VariableNames',{'Temperature','WindSpeed'})

  • rowTimes为datetime格式

rowTimes = datetime(str,'InputFormat','yyyy-MM-dd')

  • 访问timetable
    • 访问时间

outdoors.Time(1:3)

  • 访问变量名  

name=TT.Properties.VariableNames(i);

  • 读取变量

data=TT{:,:}:

  • 写入timetable

writetimetable(TT,filename)

  • 文件扩展名必须是下列格式之一:

.txt、.dat 或 .csv(适用于带分隔符的文本文件)

.xls、.xlsm 或 .xlsx(适用于 Excel® 电子表格文件)

.xlsb(适用于安装了 Windows® Excel 的系统上支持的 Excel 电子表格文件)

  • 'Delimiter'分隔符可选:","/" "/"\t"/";"/"|"

  • 根据时间提取timetable

TR = timerange("2008-06-20","2008-09-22")

newTT = TT(TR,:);

  • 重采样时间表

TT2 = retime(TT1,newTimeStep,method)

  • 计算日平均:data_daily=retime(data,'daily','mean');
  • newTimeStep 可以使用标准时间,或自定义时间步dt,插值得到对应数据

  • 根据时间合并两个timetable(默认用NaN填补)

TT = synchronize(TT1,TT2,newTimeBasis,method)

  • TT = synchronize(indoors,outdoors,'regular','linear','TimeStep',minutes(30));

将时间同步到 30 分钟的规则时间,线性插值数据。

  • newTimeBasis

  • METHOD

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值