Main Content

cumprod

説明

B = cumprod(A) は、A のサイズが 1 より大きい最初の配列次元の先頭から開始して、A の累積積を返します。

  • A がベクトルの場合、B は、A の累積積が格納された同じサイズのベクトルです。

  • A が行列の場合、B は、A の各列の累積積が格納された同じサイズの行列です。

  • A が多次元配列の場合、B は、A のサイズが 1 より大きい最初の配列次元に沿って累積積が格納された同じサイズの配列です。

  • A が table または timetable の場合、M は、A の各変数の累積積を含む、同じサイズの table または timetable です。 (R2023a 以降)

B のクラスは A のクラスと同じです。ただし、Alogical の場合、Bdouble です。

B = cumprod(A,dim) は、次元 dim に沿って要素の累積積を返します。たとえば A が行列の場合、cumprod(A,2)A の行に沿って累積積を返します。

B = cumprod(___,direction) は、前述の任意の構文の方向を指定します。たとえば cumprod(A,2,"reverse") は、A の 2 番目の次元の末尾から先頭の方向に演算を行い、行の累積積を返します。

B = cumprod(___,nanflag) は、ANaN 値を含めるか省略するかを指定します。たとえば、cumprod(A,"omitnan") は各積の計算時に NaN 値を無視します。既定では、cumprodNaN 値を含めます。

すべて折りたたむ

1 から 5 までの整数の累積積を求めます。要素 B(2)A(1)A(2) の積です。B(5)A(1) から A(5) までの要素の積です。

A = 1:5;
B = cumprod(A)
B = 1×5

     1     2     6    24   120

要素が線形インデックスに対応している 3 行 3 列の行列を作成します。

A = [1 4 7; 2 5 8; 3 6 9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

A の列の累積積を求めます。要素 B(5)A(4)A(5) の積です。B(9) は、A(7)A(8)、および A(9) の積です。

B = cumprod(A)
B = 3×3

     1     4     7
     2    20    56
     6   120   504

要素が線形インデックスに対応している 2 行 3 列の行列を作成します。

A = [1 3 5; 2 4 6]
A = 2×3

     1     3     5
     2     4     6

A の行の累積積を求めます。要素 B(3)A(1)A(3) の積です。B(5) は、A(1)A(3)、および A(5) の積です。

B = cumprod(A,2)
B = 2×3

     1     3    15
     2     8    48

論理値の配列を作成します。

A = [true false true; true true false]
A = 2x3 logical array

   1   0   1
   1   1   0

A の行の累積積を求めます。

B = cumprod(A,2)
B = 2×3

     1     0     0
     1     1     0

出力の型は double です。

class(B)
ans = 
'double'

1 ~ 10 のランダムな整数から成る 3 行 3 列の行列を作成します。

rng default;
A = randi([1,10],3)
A = 3×3

     9    10     3
    10     7     6
     2     1    10

列に沿って累積積を計算します。"reverse" オプションを指定して、各列の下から上の方向に演算を行います。結果のサイズは A と同じになります。

B = cumprod(A,"reverse")
B = 3×3

   180    70   180
    20     7    60
     2     1    10

NaN 値を含む行列を作成します。

A = [3 5 NaN 4; 2 6 NaN 9; 1 3 0 NaN]
A = 3×4

     3     5   NaN     4
     2     6   NaN     9
     1     3     0   NaN

NaN 値を除外して行列の累積積を計算します。先頭に NaN 値が含まれている行列の列では、NaN 以外の値が検出されるまで、累積積は 1 になります。

B = cumprod(A,"omitnan")
B = 3×4

     3     5     1     4
     6    30     1    36
     6    90     0    36

入力引数

すべて折りたたむ

入力配列。ベクトル、行列、多次元配列、table または timetable として指定します。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | table | timetable
複素数のサポート: あり

演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 より大きい最初の配列次元です。

2 次元の入力配列 A について考えます。

  • cumprod(A,1)A の各列の連続する要素を処理し、各列の累積積を返します。

  • cumprod(A,2)A の各行の連続する要素を処理し、各行の累積積を返します。

cumprod(A,1) column-wise operation and cumprod(A,2) row-wise operation

dimndims(A) より大きい場合、cumprodA を返します。

累積の方向。次の値のいずれかとして指定します。

  • "forward" — 操作次元の 1 から end の方向に演算を行います。

  • "reverse" — 操作次元の end から 1 の方向に演算を行います。

欠損値の条件。次の値のいずれかとして指定します。

  • "includemissing" または "includenan" — 累積積の計算時に ANaN 値を含めます。A の最初の NaN 値が検出されるとすぐに B の要素は NaN になります。"includemissing""includenan" の動作は同じです。

  • "omitmissing" または "omitnan" — 累積積の計算時に ANaN 値を無視します。A の先頭に連続した NaN 値が含まれている場合、B の対応する要素は 1 です。"omitmissing""omitnan" の動作は同じです。

ヒント

  • 多くの累積関数では、"reverse" オプションを使用することで、入力配列の反転や鏡映を行わなくても、逆方向の計算を簡単に実行できます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する