How to perform calculations on common elements of an array

4 vues (au cours des 30 derniers jours)
harshpurohit11
harshpurohit11 le 20 Juin 2018
Commenté : harshpurohit11 le 21 Juin 2018
I have A_names =[a,a,a,b,b,c,c,c,c]; B_values = [1,2,3,2,2,3,4,4,4]; length(A_names) = length(B_values). I need to find average of B_values for the common elements of A_names

Réponse acceptée

Image Analyst
Image Analyst le 20 Juin 2018
If you have the Statistics and Machine Learning Toolbox, use grpstats() - that's what it's meant for - to get statistics by group.
A_names = {'a';'a';'a';'b';'b';'c';'c';'c';'c'}
B_values = [1,2,3,2,2,3,4,4,4]
t = table(A_names, B_values')
output = grpstats(t, 1)
  1 commentaire
harshpurohit11
harshpurohit11 le 21 Juin 2018
Thank you so much. This is exactly what I was looking for

Connectez-vous pour commenter.

Plus de réponses (1)

Adam Danz
Adam Danz le 20 Juin 2018
You can loop through unique values of A_names. Here's a hint to get you started.
A_names ={'a','a','a','b','b','c','c','c','c'};
unqA = unique(A_names);
m = mean(B_values(strcmp(A_names,unqA{1})));

Community Treasure Hunt

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

Start Hunting!

Translated by