How can i write any vector into short form?

1 view (last 30 days)
Triveni
Triveni on 28 Jun 2016
Commented: Triveni on 29 Jun 2016
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.

Accepted Answer

Stephen23
Stephen23 on 28 Jun 2016
Edited: Stephen23 on 28 Jun 2016
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
  1 Comment
Triveni
Triveni on 29 Jun 2016
Can i count + and - part together??
V = [0 0 0 -45 45 45 -45 45 -45 45 -45 90 90]
i want to write it as
[(0)*3, (-+45), (+-45)*3, (90)*2]

Sign in to comment.

More Answers (0)

Tags

Products

Community Treasure Hunt

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

Start Hunting!

Translated by