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

2 visualizzazioni (ultimi 30 giorni)
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 Commenti
Andrei Bobrov
Andrei Bobrov il 4 Mag 2017
Modificato: Andrei Bobrov il 4 Mag 2017
Please attach small example of your data file.

Accedi per commentare.

Risposta accettata

KL
KL il 4 Mag 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

Più risposte (2)

Andrei Bobrov
Andrei Bobrov il 4 Mag 2017
Modificato: Andrei Bobrov il 4 Mag 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 Commento
Johan Wilson
Johan Wilson il 4 Mag 2017
Modificato: Johan Wilson il 4 Mag 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.

Accedi per commentare.


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

Categorie

Scopri di più su Data Import from MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by