Aggregate data every 10 seconds
조회 수: 2 (최근 30일)
이전 댓글 표시
hello everyone, I have a table file "TICKTYPE" with a data column "TICKTYPE.mean" class double and a column "TICKTYPE.x_TIME_" class duration in the format HH:mm:ss.SSS.
I would like to aggregate the data of TICKTYPE.mean every 10 seconds. thank you who will help me.
this is the first row for example:
{'2023.06.29'} 08:55:10.753 15145
채택된 답변
Matt J
2023년 6월 29일
This syntax of retime looks like the applicable one,
댓글 수: 9
Mathieu NOE
2023년 6월 30일
well , I don't want to say something stupid here ,especially as I don't think I am expert with timetable and retime , but my attempt to compare retime results with my own code (certainly not the best) gives some minor deltas . Not sure why .
only thing I noticed is that the original time data has not constant spacing but I suppose that's something retime does handle (to be confirmed?)
so here is it , whatever it proves or not and sorry if I just brought more confusion !
does retime fill missing bins with interpolated data ?
the x axis on the plots are simply the samples count after 10 s averaging
load('TICKTYPE2.mat')
xBID = TICKTYPE.x_BID_;
xASK = TICKTYPE.x_ASK_;
% 10 seconds average results with retime
T=table2timetable(TICKTYPE);
T(:,1)=[];
tt= retime(T,'regular','mean','TimeStep',seconds(10));
% my own 10 s average computation
tx = (TICKTYPE.x_TIME_);
s = seconds(tx);
% NB that s spacing is not constant
dt = 10; % seconds
start = floor(s(1));
stop = dt*ceil(s(end)/dt);
n = (stop-start)/dt;
for ck = 1:n
ind1 = start + (ck-1)*dt;
ind2 = ind1 + dt -1;
id = (s>= ind1 & s<= ind2); % NB that s spacing is not constant
xBID_10s_mean(ck,1) = mean(xBID(id));
xASK_10s_mean(ck,1) = mean(xASK(id));
end
% plot the results
figure(1)
plot(tt.x_BID_);
hold on
plot(xBID_10s_mean);
title('x BID');
legend('retime','own code');
figure(2)
plot(tt.x_ASK_);
hold on
plot(xASK_10s_mean);
title('x ASK');
legend('retime','own code');
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Timetables에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!