MATLAB: Repeating an index number n times in a vector

vector index number

Hi People,
I'd like to transform a vector p like this one. p=[3 0 2 2 1 0 3]
Into a new vector that has n times the indexnumber of n, for example:
new vector: v=[1 1 1 3 3 4 4 5 7 7 7] so it has 3 times 1, zero times 2, 2 times 3 and so on.
the numbers generated in p are variable but are always between 0 and 15
I hope you can help me.
Regards, Siem

Best Answer

v = [];
count = 1;
for j = 1:length(p)
if p(j) ~= 0
v(count:count+p(j)-1) = j*ones(p(j),1);
count = count + p(j);
end
end