Documentation

histc

Histogram bin counts (not recommended; use histcounts)

histc is not recommended. Use histcounts instead.

For more information, including suggestions on updating code, see Replace Discouraged Instances of hist and histc.

Description

example

bincounts = histc(x,binranges) counts the number of values in x that are within each specified bin range. The input, binranges, determines the endpoints for each bin. The output, bincounts, contains the number of elements from x in each bin.

• If x is a vector, then histc returns bincounts as a vector of histogram bin counts.

• If x is a matrix, then histc operates along each column of x and returns bincounts as a matrix of histogram bin counts for each column.

To plot the histogram, use bar(binranges,bincounts,'histc').

bincounts = histc(x,binranges,dim) operates along the dimension dim.

example

[bincounts,ind]= histc(___) returns ind, an array the same size as x indicating the bin number that each entry in x sorts into. Use this syntax with any of the previous input argument combinations.

Examples

collapse all

Initialize the random number generator to make the output of randn repeatable.

rng(0,'twister')

Define x as 100 normally distributed random numbers. Define bin ranges between -4 and 4. Determine the number of values in x that are within each specified bin range. Return the number of elements in each bin in bincounts.

x = randn(100,1);
binranges = -4:4;
[bincounts] = histc(x,binranges)
bincounts = 9×1

0
2
17
28
32
16
3
2
0

To plot the histogram, use the bar function.

figure
bar(binranges,bincounts,'histc') Defined ages as a vector of ages. Sort ages into bins with varying ranges between 0 and 75.

ages = [3,12,24,15,5,74,23,54,31,23,64,75];
binranges = [0,10,25,50,75];

[bincounts,ind] = histc(ages,binranges)
bincounts = 1×5

2     5     1     3     1

ind = 1×12

1     2     2     2     1     4     2     4     3     2     4     5

bincounts contains the number of values in each bin. ind indicates the bin numbers.

Input Arguments

collapse all

Values to be sorted, specified as a vector or a matrix. The bin counts do not include values in x that are NaN or that lie outside the specified bin ranges. If x contains complex values, then histc ignores the imaginary parts and uses only the real parts.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Bin ranges, specified as a vector of monotonically nondecreasing values or a matrix of monotonically nondecreasing values running down each successive column. The values in binranges determine the left and right endpoints for each bin. If binranges contains complex values, then histc ignores the imaginary parts and uses only the real parts.

If binranges is a matrix, then histc determines the bin ranges by using values running down successive columns. Each bin includes the left endpoint, but does not include the right endpoint. The last bin consists of the scalar value equal to last value in binranges.

For example, if binranges equals the vector [0,5,10,13], then histc creates four bins. The first bin includes values greater than or equal to 0 and strictly less than 5. The second bin includes values greater than or equal to 5 and less than 10, and so on. The last bin contains the scalar value 13.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Dimension along which to operate, specified as a scalar.

Output Arguments

collapse all

Number of elements in each bin, returned as a vector or a matrix. The last entry in bincounts is the number of values in x that equal the last entry in binranges.

Bin index numbers, returned as a vector or a matrix that is the same size as x.

Tips

• If values in x lie outside the specified bin ranges, then histc does not include these values in the bin counts. Start and end the binranges vector with -inf and inf to ensure that all values in x are included in the bin counts.