模型输入的输入变量的一致时间

时间:2013-06-30 23:51:07

标签: matlab average

我正在编写用于预测水温的模型的一些组件,我有一组输入文件(i)气温; (ii)辐射; (iii)云层; (iv)风速; (v)相对湿度。为了通过方程式传递这些数据,我首先需要确保所有变量都是在一致的时间测量的,其中一些输入数据可以在30分钟,60分钟,每天等的分辨率下测量,也可以有缺少数据点。请考虑以下示例值:

JdayCC = datenum('2011-01-01 00:00','yyyy-mm-dd HH:MM'):60/(60*24):...
    datenum('2011-12-31 23:00','yyyy-mm-dd HH:MM');
DatCC = rand(1,length(JdayCC));

JdayAirT = datenum('2011-04-01 00:00','yyyy-mm-dd HH:MM'):30/(60*24):...
    datenum('2011-12-31 23:00','yyyy-mm-dd HH:MM');
JdayAirT(200:250) = [];
JdayAirT(400:420) = [];
DatAirT = rand(1,length(JdayAirT));

JdayRH = datenum('2011-02-06 00:00','yyyy-mm-dd HH:MM'):3600/(60*24):...
    datenum('2011-12-31 22:00','yyyy-mm-dd HH:MM');
DatRH = rand(1,length(JdayRH));

JdayWnd = datenum('2011-02-06 00:00','yyyy-mm-dd HH:MM'):60/(60*24):...
    datenum('2011-12-31 20:00','yyyy-mm-dd HH:MM');
JdayAirT(400:420) = [];
DatWnd = rand(1,length(JdayWnd));

JdaySW = datenum('2011-02-07 00:00','yyyy-mm-dd HH:MM'):60/(60*24):...
    datenum('2011-12-31 22:00','yyyy-mm-dd HH:MM');
DatSW = rand(1,length(JdaySW));

我想写一个函数来查看所有这些变量,并确定所有变量可以平均的分辨率。例如,如果数据是

(i)每小时; (ii)每小时; (iii)每日; (iv)30分钟; (v)每日

然后函数将所有变量平均为每日值,然后找到所有变量之间的一致时间,并保持这些变量通过方程式。

1 个答案:

答案 0 :(得分:0)

diff会告诉您数据DatCCDatAirT等每个值之间的(时间)增量,以帮助您确定采样时间(假设时间)是统一抽样)。然后,您可以使用每个数据创建时间序列,并使用resample以相同的采样时间获取所有数据,这是现有采样时间的最小值。