Mean of a repeating numbers corresponding values

1 visualizzazione (ultimi 30 giorni)
I have a matrix like [ 10 40; 10 60 ;10 90; 14 10; 14 20; 14 30; 14 40] i want to calculate the mean of the repeating numbers corresponding values like repeating 10 corresponding values are 40 60 90 so the mean is 190/3 and similarly the 14 corresponding values are 10 ,20,30,40 so the mean is 100/4. How can i do this ?

Risposta accettata

Simon Chan
Simon Chan il 24 Mar 2022
Use function groupsummary:
A = [ 10 40; 10 60 ;10 90; 14 10; 14 20; 14 30; 14 40];
T = table(A(:,1),A(:,2),'VariableName',{'Item','Value'});
S = groupsummary(T,'Item','mean')
S = 2×3 table
Item GroupCount mean_Value ____ __________ __________ 10 3 63.333 14 4 25
  4 Commenti
Simon Chan
Simon Chan il 24 Mar 2022
A = [ 10 40; 10 60 ;10 90; 14 10; 14 20; 14 30; 14 40];
Item = A(:,1);
Value = A(:,2);
[UItem,~] = unique(Item);
meanValue = arrayfun(@(x) mean(Value(ismember(Item,x))),UItem);
result = [UItem, meanValue]
result = 2×2
10.0000 63.3333 14.0000 25.0000
Image Analyst
Image Analyst il 24 Mar 2022
@Sandeep Nair you can use splitapply(), introduced in 2015b.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Preprocessing in Help Center e File Exchange

Prodotti


Release

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by