# How can I calculate average from specific rows to another rows in a datatable?

5 views (last 30 days)
Jonathan Bijman on 14 Jun 2019
Commented: Jonathan Bijman on 14 Jun 2019
Dear community
I'm trying to design a script, in order to calculate the average from the 1st to 3rd row, then from the 4th to 6th and finally from the 7th to 9th row. The data has this structure:
Comment Cell Temperature
24-04-2019 A8 38,76736069
24-04-2019 A8 38,70141602
24-04-2019 A8 39,03113937
24-04-2019 C5 38,56953049
24-04-2019 C5 39,29491806
24-04-2019 C5 39,26194382
24-04-2019 E1 36,5252533
24-04-2019 E1 36,6241684
24-04-2019 E1 36,36038971
The temperature are in the 6th column. These data are like datatable. I have this script:
Clean=table2cell(datatable);
nrow = height(datatable);
lastidx = floor(nrow/3) * 3;
T_p = mean(reshape(datatable{1:lastidx,6}, 3, []));
T_C=T_p.';
But doesn´t work. How can I do?
Any for loop?
Thank U

Jonathan Bijman on 14 Jun 2019
It’s the same data. Previously I import all Excel files as datatable and the idea is matlab calculate the average of the three groups of Measurements as explain before.
Jonathan Bijman on 14 Jun 2019
When I apply the last commands appears this error
mean(reshape(Clean,3,[])).'
Error using sum
Invalid data type. First argument must be numeric or logical.
Error in mean (line 127)
y = sum(x, dim, flag) ./ mysize(x,dim);
Error in Untitled2 (line 23)
mean(reshape(Clean,3,[])).'
mean([Clean(1:3) Clean(4:6) Clean(7:9)])
Error using sum
Invalid data type. First argument must be numeric or logical.
Error in mean (line 127)
y = sum(x, dim, flag) ./ mysize(x,dim);
Error in Untitled2 (line 23)
T=mean([Clean(1:3) Clean(4:6) Clean(7:9)])
I have 35 files with the structure I wrote at the beginning
I dunno what to do
Jonathan Bijman on 14 Jun 2019