Mean of a repeating numbers corresponding values

4 Ansichten (letzte 30 Tage)
Sandeep Nair
Sandeep Nair am 24 Mär. 2022
Kommentiert: Image Analyst am 24 Mär. 2022
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 ?

Akzeptierte Antwort

Simon Chan
Simon Chan am 24 Mär. 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 Kommentare
Simon Chan
Simon Chan am 24 Mär. 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 am 24 Mär. 2022
@Sandeep Nair you can use splitapply(), introduced in 2015b.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Produkte


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by