I want to get the mean of cells in column 4 based on the column 1 value.
3 views (last 30 days)
Show older comments
Column 1 is numbers 259:374 and could be converted to datetime if easier. It contains decimals for the hours and minutes.
I want to create a mean of all the corresponding values in column 4, from to that specific day,(in column 1) eg 259.00 to 259.99 and do this for every day cycling through to 374.
Ive tried creating a loop but i honestly have no idea where to start, any help would be appreciated.
0 Comments
Accepted Answer
David Hill
on 9 Dec 2021
m=floor(yourMatrix(:,1));
M=259:374;
for k=1:length(M)
n(k)=mean(yourMatrix(m==M(k),4));
end
More Answers (1)
Image Analyst
on 9 Dec 2021
Try splitapply(). It's meant for this. You could probably also use groupsummary() or grpstats().
% Create random data:
column4 = sort(259 + (374-259) * rand(1000, 1))
% Group into groups that have the same value to the left of the decimal point.
groups = findgroups(floor(column4))
% Take the mean of each group.
means = splitapply(@mean, column4, groups)
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!