Asked by Daniel Ring
on 8 Oct 2018

I have a matrix with 16 columns and a very large number of rows. Each column has two possible outcomes in it (for example 1 or 0 in one column, .6 and .4 in another). I would like to count each of these occurrences in the columns. Preferably, I'd like to have a vector that counts each outcome of its respective column. Thank you!

[EDITED, Jan, moved from section for answers]

Example: A = [1 .6 .7 .8; 0 .4 .3 .2; 1 .6 .7 .8; 1 .6 .3 .8]

ans = [3 3 2 2 ; 1 1 2 2]

Answer by ANKUR KUMAR
on 8 Oct 2018

Accepted Answer

Since you have not given any sample data, I am taking some random data.

A=randi(50,50,50);

A(A<=25)=0.4;

A(A>25)=0.6;

A contains only 0.4 and 0.6 only, spreaded out completely. The below program gives you the occurrence of 0.4 and 0.6 in every coloumn.

nums1=arrayfun(@(x) length(find(A(:,x)==0.4)),1:size(A,2));

nums2=arrayfun(@(x) length(find(A(:,x)==0.6)),1:size(A,2));

occur=[nums1' nums2'];

nums2 can also be calculated as

nums2=size(A,1)-nums1;

Sign in to comment.

Answer by Jan
on 8 Oct 2018

Edited by Jan
on 8 Oct 2018

Maybe:

A = [1 .6 .7 .8; ...

0 .4 .3 .2; ...

1 .6 .7 .8; ...

1 .6 .3 .8];

Count = sum(A == A(1, :), 1); % Auto-expand: >= R2016b

Result = [Count; size(A, 1) - Count];

For older Matlab versions:

Count = sum(bsxfun(@eq, A, A(1, :)), 1);

Sign in to comment.

Answer by dpb
on 8 Oct 2018

Several ways to do this; probably easiest is via converting to categorical with the unique values in each column transformed to a single pair of categories--[0|1], [Y|N], [HI|LO], ..., whatever makes sense for the meanings.

Then histogram on those variables to return counts.

Or, use unique and the returned (optional) second index array to bin over.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 3 Comments

## madhan ravi (view profile)

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/422859-counting-occurrences-of-each-column-in-a-matrix#comment_619351

## Jan (view profile)

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/422859-counting-occurrences-of-each-column-in-a-matrix#comment_619367

## Daniel Ring (view profile)

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/422859-counting-occurrences-of-each-column-in-a-matrix#comment_619376

Sign in to comment.