Effacer les filtres
Effacer les filtres

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

1 vue (au cours des 30 derniers jours)
Johan Wilson
Johan Wilson le 4 Mai 2017
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 commentaires
Andrei Bobrov
Andrei Bobrov le 4 Mai 2017
Modifié(e) : Andrei Bobrov le 4 Mai 2017
Please attach small example of your data file.
Johan Wilson
Johan Wilson le 4 Mai 2017
Here is a small sample of 60 data points.

Connectez-vous pour commenter.

Réponse acceptée

KL
KL le 4 Mai 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

Plus de réponses (2)

Andrei Bobrov
Andrei Bobrov le 4 Mai 2017
Modifié(e) : Andrei Bobrov le 4 Mai 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 commentaire
Johan Wilson
Johan Wilson le 4 Mai 2017
Modifié(e) : Johan Wilson le 4 Mai 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.

Connectez-vous pour commenter.


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

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by