Hi, I have a large matrix and I'm attempting to bin the data in intervals of 5.
For example, I want all the numbers (most are non integres, ex. 1.2) between 0 to 5 in one bin, then 5 to 10 in another, etc. until I get to 2000 (so 400 bins in total). Also, for each bin, I'd like to find the median or average value, and create a vector with these values.
Any help would be greatly appreciated!

 채택된 답변

Star Strider
Star Strider 2021년 7월 20일
One approach —
v = rand(1,1000)*2000;
edges = 0:5:2000;
[counts,edg,bin] = histcounts(v, edges); % Bin Counts
Meanv = accumarray(bin(:),v(:),[],@mean); % Mean Values OF Each Bin
ctrs = edges(1:end-1)+mean(diff(edges)/2); % Bin Centres
figure
subplot(2,1,1)
bar(ctrs, counts)
title('Histogram')
subplot(2,1,2)
scatter(ctrs, Meanv,'.')
title('Mean Values Of Each Bin')
xlabel('Bin')
.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2021년 7월 20일

답변:

2021년 7월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by