Average a section of a column in a table based on another column values

3 views (last 30 days)
Hi,
I'm trying to average the values of a column(T3.value) coresponding to a different column in the same table (T3.index). T3.index goes form 0 to 10 in this example and output in another table with a single value for index and a single value for 'value'.
index average_value
0 x
1 y
. .
. .
10 z
i=T3.index
for i=1:max(i)
A(i)=mean(T3.value(i))
end

Accepted Answer

KSSV
KSSV on 19 Apr 2022
Edited: KSSV on 19 Apr 2022
[c,ia,ib] = unique(T3.index) ;
N = length(c) ;
iwant = zeros(N,1) ;
for i = 1:N
iwant(i) = mean(T3.value(ib==i)) ;
end

More Answers (1)

Lola Davidson
Lola Davidson on 19 May 2022
Hi Gabi,
We actually have several functions that can help with these "grouped calculations". In particular, I think groupsummary would be the easiest thing to use here:
T_means = groupsummary(T3,'index','mean');

Categories

Find more on Matrices and Arrays 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!