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]

2 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

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!