MATLAB: How can i write any vector into short form

MATLAB

I have a vector
V = [0 0 0 -45 45 45 -45 90 90]
i want to view it as countable form i.e
[(0)3, -45, (45)2, -45, (90)2]
or
[(0)*3, -45, (45)*2, -45, (90)*2]
or any other counted form. May be by using symbolic tool. please help me.

Best Answer

You could use Jan Simon's excellent FEX submission RunLength:
>> V = [0,0,0,-45,45,45,-45,90,90];
>> [X,N] = RunLength(V);
>> str = sprintf(', (%d)*%d',[X;N]);
>> str(3:end)
ans = (0)*3, (-45)*1, (45)*2, (-45)*1, (90)*2
The ones, because they are a special case, must be dealt with separately. One possibility is to simply replace those parts of the string:
>> regexprep(str(3:end),'\((-?\d+)\)\*1,','$1')
ans = (0)*3, -45 (45)*2, -45 (90)*2