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

2 vues (au cours des 30 derniers jours)
Gabi
Gabi le 19 Avr 2022
Modifié(e) : Gabi le 17 Avr 2024
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

Réponse acceptée

KSSV
KSSV le 19 Avr 2022
Modifié(e) : KSSV le 19 Avr 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

Plus de réponses (1)

Lola Davidson
Lola Davidson le 19 Mai 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');

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by