怎么对齐两列时间序列数据,matlab

2025-11-06 09:47:22

1、如下图所示,两列时间序列,一个3721行,一个3582行。相对这两列数进行计算,但由于时间序列没有对齐,数据量太大,直接找又不好找。

怎么对齐两列时间序列数据,matlab

怎么对齐两列时间序列数据,matlab

1、定义三个数据

b1_3(1,1)=0;%用于存储第一个时间轴对应数据

b2_3(1,1)=0;;%用于存储第二个时间轴对应数据

a=datetime('now','ConvertFrom','yyyy-mm-dd hh-ss-ms');%用于存储时间轴

怎么对齐两列时间序列数据,matlab

2、确定两列数据各自长度。

这里用了size函数。

怎么对齐两列时间序列数据,matlab

3、这里我用到了两个for循环(PS:for循环好像 速度有点慢,不过数据量小影响不到)。

怎么对齐两列时间序列数据,matlab

4、依据上述方法,运行完毕之后,发现两个时间轴,有共同时间点3576个,中间缺少值只有几个。

怎么对齐两列时间序列数据,matlab

5、我写了一个function函数

这是我用到的代码(输入:b1 b2两个时间轴b1_1,b2_1分别对应的数据。

输出:a为共有时间轴,b1_3,b2_3为各自对应数据,bb,b2_3是我自己的运算数据)。

unction [a,b1_3,b2_3,bb,b_ma]=q1(b1,b1_1,b2,b2_1)%两列时间序列数据如何对齐b1_3(1,1)=0;b2_3(1,1)=0;a=datetime('now','ConvertFrom','yyyy-mm-dd hh-ss-ms');[c_1,~]=size(b1);[c_2,~]=size(b2);t=1;for i=1:c_1    for ii=t:c_2        if b1(i,1)==b2(ii,1)            b1_3(end+1,1)=b1_1(i,1);            b2_3(end+1,1)=b2_1(ii,1);            a(end+1,1)=b1(i,1);            t=ii;            break        end    endendbb=b1_3-b2_3;[~,tt]=max(bb);b_ma=nanmean(bb(tt-12:tt+12,1));end

怎么对齐两列时间序列数据,matlab

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢