Splitting an array by the value
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Charlie Rannard
le 25 Nov 2021
Commenté : Charlie Rannard
le 25 Nov 2021
Say I have a set of values (points in the last 3 games): [ 9 9 6 4 4 7 9 9 9 9 9 9 9 7 7 5 7 7 9 9 9 9 9]
and also attendance in each of these games: [95.4508 85.2212 97.6083 99.3070 99.9607 99.5018 99.4400 97.4173 99.0898 99.8577 99.8764 99.5824 99.4344 99.5955 97.8574 99.8539 99.8427 99.8652 98.2601 99.7846 99.7284 103.4049 99.8820]
How could I break up the points array into sub-categories e.g 3pts, 6pts, 9pts to take an average attendance for that number of points to plot, or any other way i can plot this data. Thanks
0 commentaires
Réponse acceptée
Dyuman Joshi
le 25 Nov 2021
y = [9 9 6 4 4 7 9 9 9 9 9 9 9 7 7 5 7 7 9 9 9 9 9];
att = [95.4508 85.2212 97.6083 99.3070 99.9607 99.5018 99.4400 97.4173 99.0898 99.8577 99.8764 99.5824 99.4344 99.5955 97.8574 99.8539 99.8427 99.8652 98.2601 99.7846 99.7284 103.4049 99.8820];
att3pt = mean(att(find(y<=3))) %there are no points less than 3
att6pt = mean(att(find(y>3&y<=6)))
att9pt = mean(att(find(y>6&y<=9)))
Plus de réponses (1)
Dave B
le 25 Nov 2021
Modifié(e) : Dave B
le 25 Nov 2021
You can do this really easily with groupsummary
x=[9 9 6 4 4 7 9 9 9 9 9 9 9 7 7 5 7 7 9 9 9 9 9];
y=[95.4508 85.2212 97.6083 99.3070 99.9607 99.5018 99.4400 97.4173 99.0898 99.8577 ...
99.8764 99.5824 99.4344 99.5955 97.8574 99.8539 99.8427 99.8652 98.2601 99.7846 ...
99.7284 103.4049 99.8820];
[mu,groups]=groupsummary(y',x','mean')
bar(groups,mu)
Cool bonus of using groupsummary is that you can also grab other summary statistics, like the standard deviation:
figure
[stats,groups]=groupsummary(y',x',["mean" "std"]);
mu=stats(:,1);
bar(groups,mu);
hold on
sig = stats(:,2);
errorbar(groups,mu,sig,'LineStyle','none','CapSize',0,'Color','k','LineWidth',2)
Voir également
Catégories
En savoir plus sur Strategy & Logic 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!