two for Nested Loops
Mostrar comentarios más antiguos
How i can sum the third column to get the average over each 24 values of the second coloumn?
Respuestas (6)
Jos (10584)
el 14 de Dic. de 2017
Editada: Jos (10584)
el 14 de Dic. de 2017
Your question is a little unclear. Do you want to sum all values of the third row when the second row equals 0, equals 1, etc, so you end up with 24 summed values? That is easy:
A = xlsread('average24');
S = accumarray(A(:,2)+1, A(:,3), [24,1], @mean)
% S(k) is the average of all values of A(:,3) when A(:,2) equals (k-1)
1 comentario
Jos (10584)
el 14 de Dic. de 2017
you want the average, answer corrected! :)
Maybe
A = xlsread('average24');
% Average over blocks of 24 values:
S1 = mean(reshape(A(:, 3), 24, []), 1);
% Or average over all values belonging to 0, 1, 2, ...:
S2 = mean(reshape(A(:, 3), 24, []), 2);
An example with timetable,
EDITED
%import data
data = readtable('actual data.txt');
%create a proper datetime column
data.Timestamp = datetime(cell2mat(data{:,[1 2]}),'InputFormat','yyyy.MM.ddHH:mm');
%keep only datetime and measurements
data = data(:, [end 3]);
%create timetable
TT = table2timetable(data(:,2),'rowtimes',data.Timestamp);
%calculate daily mean
TT_mean = retime(TT,'daily','mean');
ahmad Saad
el 14 de Dic. de 2017
0 votos
ahmad Saad
el 15 de Dic. de 2017
0 votos
4 comentarios
KL
el 15 de Dic. de 2017
check my edited answer!
ahmad Saad
el 15 de Dic. de 2017
The answer I gave you works on your text file. I tested it before posting it here!
This is the output
TT_mean =
61×1 timetable
Time Var3
__________ ______
2017-10-01 9383.2
2017-10-02 9388.9
2017-10-03 9420.8
2017-10-04 9449.3
2017-10-05 9463
2017-10-06 9456.5
2017-10-07 9406.2
2017-10-08 9364.3
2017-10-09 9386.4
2017-10-10 9440.3
...
ahmad Saad
el 15 de Dic. de 2017
ahmad Saad
el 15 de Dic. de 2017
0 votos
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!