Borrar filtros
Borrar filtros

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

10 visualizaciones (últimos 30 días)
Gabi
Gabi el 19 de Abr. de 2022
Editada: Gabi el 17 de Abr. de 2024 a las 14:11
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

Respuesta aceptada

KSSV
KSSV el 19 de Abr. de 2022
Editada: KSSV el 19 de Abr. de 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

Más respuestas (1)

Lola Davidson
Lola Davidson el 19 de Mayo de 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');

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by