最近处理时间数据,感觉处理的好烦躁,有一种自己在写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