ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

構文

  • B = cumprod(A)
  • B = cumprod(A,dim)
  • B = cumprod(___,direction)

説明

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 番目の次元の末尾から先頭の方向に演算を行い、行の累積積を返します。

すべて折りたたむ

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

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

     1     2     6    24   120

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

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

     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 =

     1     4     7
     2    20    56
     6   120   504

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

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

     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 =

     1     3    15
     2     8    48

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

A = [true false true; true true false]
A =

     1     0     1
     1     1     0

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

B = cumprod(A,2)
B =

     1     0     0
     1     1     0

出力の型は double です。

class(B)
ans =

double

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

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

     9    10     3
    10     7     6
     2     1    10

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

B = cumprod(A,'reverse')
B =

   180    70   180
    20     7    60
     2     1    10

入力引数

すべて折りたたむ

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

データ型: 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 の方向に演算を行います。

データ型: char

出力引数

すべて折りたたむ

累積積の配列。入力配列 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 より前に導入

この情報は役に立ちましたか?