How to convert A= [13;8;12;4​;8;1;13;0;​10;13;1;6;​14;13;1;14​;11;9;9;10​;10;15] to B= [3 0 0 1 0 1 0 2 2 3 1 1 4 2 1]

3 views (last 30 days)
if A= [13;8;12;4;8;1;13;0;10;13;1;6;14;13;1;14;11;9;9;10;10;15]
how can I convert A to be: B= [3 0 0 1 0 1 0 2 2 3 1 1 4 2 1].
3 in the first index of B, because "1" is repeated three times in A.
2 in the eighth index of B, because "8" is repeated two times in A.
"0" in the second index of B, because the value 2 is not exist in A and so on...

Answers (2)

Simon Chan
Simon Chan on 8 Jul 2021
edges = 1:max(A)+1;
B = histcounts(A,edges)

Jonas
Jonas on 8 Jul 2021
Edited: Jonas on 8 Jul 2021
use histcounts with integer bin method
histcounts([13;8;12;4;8;1;13;0;10;13;1;6;14;13;1;14;11;9;9;10;10;15],'BinMethod','integers')
you forgot the number 0 in your example output

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!