How can i write any vector into short form?

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

0 Stimmen

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

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)

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Gefragt:

am 28 Jun. 2016

Kommentiert:

am 29 Jun. 2016

Community Treasure Hunt

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

Start Hunting!

Translated by