Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

cumprod

説明

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

  • A がベクトルの場合、cumprod(A) は、A の要素の累積積が含まれるベクトルを返します。

  • A が行列の場合、cumprod(A) は、A の各列の累積積を含む行列を返します。

  • A が多次元配列の場合、関数 cumprod(A) は、最初の大きさが 1 でない次元に沿って機能します。

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

B = cumprod(___,direction) は、前述の任意の構文を使用して、オプションで方向を指定します。A の指定は必須です。dim はオプションで指定できます。たとえば cumprod(A,2,'reverse') は、A の 2 番目の次元の末尾から先頭の方向に演算を行い、行の累積積を返します。

B = cumprod(___,nanflag) は、前述の任意の構文について NaN 値を計算に含めるか除外するかを指定します。cumprod(A,'includenan') では NaN 値が計算に含められ、cumprod(A,'omitnan') ではこれらが無視されます。

すべて折りたたむ

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 値を含むベクトルを作成し、累積積を計算します。既定では、cumprodNaN 値を含めます。NaN 値を計算に含めた場合、A 内の最初の NaN 値が検出されるとすぐに、累積積は NaN になります。

A = [1 3 NaN 2 4 NaN];
B = cumprod(A)
B = 1×6

     1     3   NaN   NaN   NaN   NaN

'omitnan' オプションを使用して、累積積の計算で NaN 値を無視します。

B = cumprod(A,'omitnan')
B = 1×6

     1     3     3     6    24    24

入力引数

すべて折りたたむ

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

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

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

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

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

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

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

累積の方向。'forward' (既定値) または 'reverse' として指定します。

  • 'forward' は、アクティブな次元の 1 から end の方向に演算を行います。

  • 'reverse' は、アクティブな次元の end から 1 の方向に演算を行います。

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

  • 'includenan' — 個々の積の計算時に入力の NaN 値を含み、結果として NaN 値が出力されます。

  • 'omitnan' — 入力の NaN 値を無視します。NaN 値を含む要素の積は、すべての非 NaN 要素の積になります。すべての要素が NaN の場合、cumprod は 1 を返します。

出力引数

すべて折りたたむ

累積積の配列。入力配列 A と同じサイズのベクトル、行列または多次元配列として返されます。

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

詳細

すべて折りたたむ

最初の大きさが 1 でない次元

最初の大きさが 1 でない次元 (nonsingleton dimension) は、サイズが 1 に等しくない配列の最初の次元を表します。

以下に例を示します。

  • X が 1 行 n 列の行ベクトルの場合、2 番目の次元は X の最初の大きさが 1 でない次元になります。

  • X が 1 x 0 x n の空配列の場合、2 番目の次元は X の最初の大きさが 1 でない次元になります。

  • X が 1 x 1 x 3 の配列の場合、3 番目の次元は X の最初の大きさが 1 でない次元になります。

ヒント

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

拡張機能

バージョン履歴

R2006a より前に導入