Multiply x sequentially with items of a vector

2 Ansichten (letzte 30 Tage)
Christoph Meier
Christoph Meier am 7 Aug. 2015
Kommentiert: Torsten am 7 Aug. 2015
Dear MATLAB community,
I would like to construct an index, which should start with 100. I have computed a vector, which then determines the change in the index in each time period. For example, for 4 time periods:[1.1,1.2,1.3,1.4] Basically, the operation should compute and produce the following vector:
  1. 100*1.1
  2. (100*1.1)*1.2
  3. ((100*1.1)*1.2)*1.3
  4. (((100*1.1)*1.2)*1.3)*1.4
Thank you very much in advance! I appreciate any help, as I am still a beginner with MATLAB.

Akzeptierte Antwort

Torsten
Torsten am 7 Aug. 2015
Bearbeitet: Torsten am 7 Aug. 2015
vder(1)=v(1);
for l=2:length(v)
vder(l)=vder(l-1)*v(l);
end
vder=100*vder;
v is the original vector, vder is the vector you are looking for.
Best wishes
Torsten.
  2 Kommentare
Stephen23
Stephen23 am 7 Aug. 2015
Bearbeitet: Stephen23 am 7 Aug. 2015
See Walter Roberson's answer for the simpler and faster way to do this.
Torsten
Torsten am 7 Aug. 2015
And cumprod.m works without a loop ?
Best wishes
Torsten.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 7 Aug. 2015
Bearbeitet: Stephen23 am 7 Aug. 2015
cumprod([100, 1.1, 1.2, 1.3, 1.4])

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by