Clear Filters
Clear Filters

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

1 view (last 30 days)
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

Sign in to comment.

Accepted Answer

KL
KL on 4 May 2017
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)

Andrei Bobrov
Andrei Bobrov on 4 May 2017
Edited: Andrei Bobrov on 4 May 2017
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
Johan Wilson
Johan Wilson on 4 May 2017
Edited: Johan Wilson on 4 May 2017
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.


Baptiste Ranguetat
Baptiste Ranguetat on 4 May 2017
meanData = zeros(1,11);
for i=1:11
meanData(i) = mean(data(:,i));
end

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!