discretize
Group numeric data into bins.
📝Syntax
Y = discretize(X, edges)
Y = discretize(X, edges, values)
C = discretize(X, edges, 'categorical', names)
C = discretize(T, 'month', 'categorical')
C = discretize(D, 'hour', 'categorical', format)
📄Description

discretize assigns each numeric value in X to a bin defined by consecutive edge values.

Datetime values can be grouped by calendar month with categorical month-year labels.

Duration values can be grouped by hour with interval labels formatted as minutes or time values.

💡Examples
Create categorical bins.
X = [5 15 25 NaN];
C = discretize(X, [0 10 20 30], 'categorical', {'small', 'medium', 'large'})
Group normally distributed data into categorical bins.
rng(1);
X = randn(1000, 1);
edges = std(X) * (-3:3);
C = discretize(X, edges, 'categorical', ...
  {'-3sigma', '-2sigma', '-sigma', 'sigma', '2sigma', '3sigma'});
ratio = nnz(C == '-sigma' | C == 'sigma') / numel(C)
Group datetime values by month.
T = datetime(2016, 1, [31; 60; 335]);
C = discretize(T, 'month', 'categorical')
Group duration values by hour.
D = minutes([30; 90; 150; 210]);
C = discretize(D, 'hour', 'categorical', 'hh:mm:ss')
🕔Version History
Version Description
2.0.0 initial version
Edit this page on GitHub