Main Content

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

cumprod

シンボリック累積積

説明

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

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

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

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

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

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

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

すべて折りたたむ

シンボリック ベクトルを作成します。要素の累積積を求めます。

syms x
A = (1:5)*x
A = (x2x3x4x5x)[x, 2*x, 3*x, 4*x, 5*x]

累積積のベクトルでは、要素 B(2)A(1)A(2) の積です。B(5)A(1) から A(5) までの要素の積です。

B = cumprod(A)
B = (x2x26x324x4120x5)[x, 2*x^2, 6*x^3, 24*x^4, 120*x^5]

すべての要素が x である 3 行 3 列のシンボリック行列 A を作成します。

syms x
A = ones(3)*x
A = 

(xxxxxxxxx)[x, x, x; x, x, x; x, x, x]

A の要素の累積積を計算します。既定の設定では、cumprod は各列の累積積を返します。

B = cumprod(A)
B = 

(xxxx2x2x2x3x3x3)[x, x, x; x^2, x^2, x^2; x^3, x^3, x^3]

各行の累積積を計算するには、dim オプションの値を 2 に設定します。

B = cumprod(A,2)
B = 

(xx2x3xx2x3xx2x3)[x, x^2, x^3; x, x^2, x^3; x, x^2, x^3]

3 x 3 x 2 のシンボリック配列を作成します。

syms x y
A(:,:,1) = [x y 0; x 3 x*y; x 1/3 y];
A(:,:,2) = [x y 3; 3 x y; y 3 x];
A
A(:,:,1) = 

(xy0x3xyx13y)[x, y, sym(0); x, sym(3), x*y; x, sym(1/3), y]

A(:,:,2) = 

(xy33xyy3x)[x, y, sym(3); sym(3), x, y; y, sym(3), x]

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

B = cumprod(A,2,'reverse')
B(:,:,1) = 

(0003x2y3xyxyxy3y3y)[sym(0), sym(0), sym(0); 3*x^2*y, 3*x*y, x*y; (x*y)/3, y/3, y]

B(:,:,2) = 

(3xy3y33xyxyy3xy3xx)[3*x*y, 3*y, sym(3); 3*x*y, x*y, y; 3*x*y, 3*x, x]

3 番目の次元 (ページ) に沿って累積積を計算するには、dim3 を指定します。'reverse' オプションを指定して、最大のページ インデックスから最小のページ インデックスの方向に演算を行います。

B = cumprod(A,3,'reverse')
B(:,:,1) = 

(x2y203x3xxy2xy1xy)[x^2, y^2, sym(0); 3*x, 3*x, x*y^2; x*y, sym(1), x*y]

B(:,:,2) = 

(xy33xyy3x)[x, y, sym(3); sym(3), x, y; y, sym(3), x]

NaN 値を含むシンボリック ベクトルを作成します。累積積を計算します。

A = [sym('a') sym('b') 1 NaN 2]
A = (ab1NaN2)[a, b, sym(1), sym(NaN), sym(2)]
B = cumprod(A)
B = (aababNaNNaN)[a, a*b, a*b, sym(NaN), sym(NaN)]

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

B = cumprod(A,'omitnan')
B = (aababab2ab)[a, a*b, a*b, a*b, 2*a*b]

入力引数

すべて折りたたむ

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

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

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

  • cumprod(A,1) は、A の列の連続する要素に作用して各列の累積積を返します。

  • cumprod(A,2) は、A の行の連続する要素に作用して各行の累積積を返します。

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

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

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

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

データ型: char

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

  • 'includenan' — 累積積の計算時に入力の NaN 値を含め、結果として NaN 値を出力します。

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

データ型: char

出力引数

すべて折りたたむ

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

詳細

すべて折りたたむ

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

大きさが 1 でない最初の次元は、サイズが 1 に等しくない配列の最初の次元です。

以下に例を示します。

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

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

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

参考

| | | |

R2013b で導入