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

5 次查看(过去 30 天)
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

采纳的回答

KSSV
KSSV 2022-4-19
编辑:KSSV 2022-4-19
[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

更多回答(1 个)

Lola Davidson
Lola Davidson 2022-5-19
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');

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by