# Calculate number appearance within a range

1 view (last 30 days)
Ancalagon8 on 19 Jan 2023
Commented: Star Strider on 25 Jan 2023
I need help calculating the number of times a number appears within a range. To be more specific, I need to specify how many times TT values are between [1, 2], then between (2, 10], then between (10, 20], then between (20, 50] then between and (50, 100].
classes=[1 2 10 20 50 100];
count=hist(TT,classes);

Star Strider on 19 Jan 2023
The histcounts and histogram functions are perfect for this —
TT = LD.TT
TT = 31×1
0 1.0000 14.9000 8.7000 1.0000 0 0 0 40.2000 10.3000
Edges = [1 2 10 20 50 100];
[BinCounts,Edges,Bin] = histcounts(TT, Edges);
BinCounts
BinCounts = 1×5
2 4 5 4 0
figure
histogram(TT, Edges)
xticks(Edges)
grid
xlim([min(Edges) max(Edges)])
xlabel('Bin Limits')
ylabel('Counts')
Thi histogram plot gives a better depiction of the bin limits than a bar plot of the histcounts results would.
.
Star Strider on 25 Jan 2023
@Askic V — That is exactly how I do it, although I always load into a output variable so that I have some control over what loads, and so I can change the name of the variable used in the subsequent script if necessary. (Since I rarely use websave, credit for discovering this goes to @Karim, who was appropriately rewarded for discovering it.)

Askic V on 19 Jan 2023
classes = [1 2 10 20 50 100];
tol = 1e-10;
res = zeros(size(diff(classes)));
for i = 1:numel(classes)-1
res(i) = sum(TT >= classes(i)-tol & TT < classes(i+1)+tol);
end
res

### Categories

Find more on Spreadsheets in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by