MATLAB Answers

0

hi every one ,

Asked by mina massoud on 7 May 2019
Latest activity Edited by Adam Danz
on 13 May 2019
A=[ 1 1 1 2 2 3 3 3 1 1 4 4 4 2 2 3 3 3 4 3 ]
how can i count the number of 1 and 2 and 3 and 4 in the row vector
thank u

  0 Comments

Sign in to comment.

Products


Release

R2018b

2 Answers

Answer by Alex Mcaulley on 7 May 2019
 Accepted Answer

sum(A==1) % or sum(A==2)...

  1 Comment

Adam Danz
on 9 May 2019
Note that you'll need to calculate the unique values in A and then loop through each of them in order to use this method.
Aunq = unique(A);
count = zeros(size(Aunq));
for i = 1:length(Aunq)
count(i) = sum(A==Aunq(i)):
end
...which is all done in the one line of code I propsed using histcounts().

Sign in to comment.


Adam Danz
Answer by Adam Danz
on 7 May 2019
Edited by Adam Danz
on 13 May 2019

Use histcounts() instead. It's designed for this purpose.
A=[ 1 1 1 2 2 3 3 3 1 1 4 4 4 2 2 3 3 3 4 3 ];
counts = histcounts(A,[unique(A),max(A)+1]);
Result
list = table(unique(A)', counts', 'VariableNames', {'Number', 'Count'});
list =
4×2 table
Number Count
______ _____
1 5
2 4
3 7
4 4

  0 Comments

Sign in to comment.