two for Nested Loops
显示 更早的评论
How i can sum the third column to get the average over each 24 values of the second coloumn?
2 个评论
ahmad Saad
2017-12-14
回答(6 个)
Jos (10584)
2017-12-14
编辑:Jos (10584)
2017-12-14
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 个评论
Jos (10584)
2017-12-14
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
2017-12-15
0 个投票
4 个评论
KL
2017-12-15
check my edited answer!
ahmad Saad
2017-12-15
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
2017-12-15
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!