MATLAB: How to count number of specific value

countnumber

I have a matrix and I'm trying to count the number of a specific value in rows (i.e. < 4 )
for example 5 2 3 8 7 1 2 2 3
nnz( A(1,:) < 4); –> 6
but I want sth like this 2 and 4

Best Answer

If you have the Image Processing Toolbox, use bwlabel and regionprops:
A = [5 2 3 8 7 1 2 2 3]
[labeledA, numRegions] = bwlabel(A < 4)
% Get the size of the regions.
props = regionprops(labeledA, 'Area')
elementCounts = [props.Area]
Run the demo and you'll see this in the command window:
A =
5 2 3 8 7 1 2 2 3
labeledA =
0 1 1 0 0 2 2 2 2
numRegions =
2
props =
2×1 struct array with fields:
Area
elementCounts =
2 4