Multiply x sequentially with items of a vector

1 回表示 (過去 30 日間)
Christoph Meier
Christoph Meier 2015 年 8 月 7 日
コメント済み: Torsten 2015 年 8 月 7 日
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.

採用された回答

Torsten
Torsten 2015 年 8 月 7 日
編集済み: Torsten 2015 年 8 月 7 日
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 件のコメント
Stephen23
Stephen23 2015 年 8 月 7 日
編集済み: Stephen23 2015 年 8 月 7 日
See Walter Roberson's answer for the simpler and faster way to do this.
Torsten
Torsten 2015 年 8 月 7 日
And cumprod.m works without a loop ?
Best wishes
Torsten.

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2015 年 8 月 7 日
編集済み: Stephen23 2015 年 8 月 7 日
cumprod([100, 1.1, 1.2, 1.3, 1.4])

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by