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

2 Ansichten (letzte 30 Tage)
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 Kommentare
Andrei Bobrov
Andrei Bobrov am 4 Mai 2017
Bearbeitet: Andrei Bobrov am 4 Mai 2017
Please attach small example of your data file.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

KL
KL am 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

Weitere Antworten (2)

Andrei Bobrov
Andrei Bobrov am 4 Mai 2017
Bearbeitet: Andrei Bobrov am 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 Kommentar
Johan Wilson
Johan Wilson am 4 Mai 2017
Bearbeitet: Johan Wilson am 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.

Melden Sie sich an, um zu kommentieren.


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

Kategorien

Mehr zu Data Import from MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by