MATLAB: How to count how many times each element appears in a vector preserving the order

matricesmatrixmatrix arraymatrix manipulation

I have a matrix A ax1, e.g.
A=[5; 5; 5; 1; 4; 4; 3; 3; 3];
I want a vector B of dimension size(unique(A))x1 which should list how many times each element of A appears in A preserving the order of A, without using loops and the option 'stable' of the command unique. In this case
B=[3;1;2;3]

Best Answer

A=[5; 5; 5; 1; 4; 4; 3; 3; 3];
[ii,jj]=unique(A);
b=hist(A,ii)
[i1,i1]=sort(jj);
B=b(i1)'