Multiply x sequentially with items of a vector

2 vues (au cours des 30 derniers jours)
Christoph Meier
Christoph Meier le 7 Août 2015
Commenté : Torsten le 7 Août 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.

Réponse acceptée

Torsten
Torsten le 7 Août 2015
Modifié(e) : Torsten le 7 Août 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 commentaires
Stephen23
Stephen23 le 7 Août 2015
Modifié(e) : Stephen23 le 7 Août 2015
See Walter Roberson's answer for the simpler and faster way to do this.
Torsten
Torsten le 7 Août 2015
And cumprod.m works without a loop ?
Best wishes
Torsten.

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 7 Août 2015
Modifié(e) : Stephen23 le 7 Août 2015
cumprod([100, 1.1, 1.2, 1.3, 1.4])

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by