MATLAB: How to get different elements of a vector

indexindexingvector

For example, I have:
a = [3 5 5 9 5 3 9 5];
I need for answer:
3 5 9 % different elements in the vector
1 6 % index of first element
2 3 5 8 % index of second element
4 7 % index of third element
Help me!
Thank

Best Answer

a = [3 5 5 9 5 3 9 5];
[ii,jj,kk]=unique(a);
idx=accumarray(kk,1:numel(kk),[],@(x) {sort(x)'});
disp(ii)
celldisp(idx)