How to perform calculations on common elements of an array

1 visualización (últimos 30 días)
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

Respuesta aceptada

Image Analyst
Image Analyst el 20 de Jun. de 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)

Más respuestas (1)

Adam Danz
Adam Danz el 20 de Jun. de 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})));

Categorías

Más información sobre Spline Postprocessing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by