Splitting an array by the value
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Charlie Rannard
am 25 Nov. 2021
Kommentiert: Charlie Rannard
am 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 Kommentare
Akzeptierte Antwort
Dyuman Joshi
am 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)))
Weitere Antworten (1)
Dave B
am 25 Nov. 2021
Bearbeitet: Dave B
am 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)
Siehe auch
Kategorien
Mehr zu Line Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

