How can i write any vector into short form?

2 Ansichten (letzte 30 Tage)
Triveni
Triveni am 28 Jun. 2016
Kommentiert: Triveni am 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.

Akzeptierte Antwort

Stephen23
Stephen23 am 28 Jun. 2016
Bearbeitet: Stephen23 am 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 Kommentar
Triveni
Triveni am 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]

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by