How do I calculate the mean value for the days in a big data set?

Hi I have a big data set 46933x12 and the data is collected every 5 minuets and the dates looks like
2014-01-01 00:00:00
2014-01-01 00:05:00
2014-01-01 00:10:00
... I want to have mean values for each of the 11 columes. How do i do this?

6 Comments

You can acquire the mean of each column individually with,
for i = 1:12
means(i) = mean(data(:,i));
end
Hope this helps!
do you want to calculate the daily mean for these 11 variables?
Yes, so I hope to end up with a mean value for each day. so 162 mean values for every variable.
if the timestamp is always uniform like from 00:00:00 to 23:55:00, the job is much easier, is that the case for you?
Please attach small example of your data file.

Sign in to comment.

 Accepted Answer

Here is a sample code with 3 variables and 5 days with uniform 5 minute timestep
a = rand(288*5,3);
t = (1:288:288*6)';
amean = zeros(5,3);
for i=1:length(t)-1
amean(i,:) = mean(a(t(i):t(i+1)-1,:));
end

More Answers (2)

T = table2timetable(readtable('Test.Dataset.xls','ReadVariableNames',false));
out = retime(T,'daily','mean');
or for MATLAB <= R2016a
T = readtable('Test.Dataset.xls','ReadVariableNames',false);
[a,b,c] = datevec(T.Var1);
[dv,~,t] = unique([a,b,c],'rows');
[x,y] = ndgrid(t,1:size(T,2)-1);
out1 = [dv,accumarray([x(:),y(:)],reshape(T{:,2:end},[],1),[],@mean)];

1 Comment

I downloaded mathlab 2017 had 2015 before. It looks like it works for the small sample but it dont work for the full set. This is a slightly bigger one.

Sign in to comment.

Categories

Find more on Files and Folders in Help Center and File Exchange

Asked:

on 4 May 2017

Edited:

on 4 May 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!