Main Content

cumsum

シンボリック累積和

説明

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

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

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

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

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

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

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

すべて折りたたむ

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

syms x
A = (1:5)*x
A = (x2x3x4x5x)

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

B = cumsum(A)
B = (x3x6x10x15x)

要素がすべて 1 に等しい 3 行 3 列のシンボリック行列 A を作成します。

A = sym(ones(3))
A = 

(111111111)

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

B = cumsum(A)
B = 

(111222333)

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

B = cumsum(A,2)
B = 

(123123123)

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

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

(xy33xyy2x)

A(:,:,2) = 

(xy131yx13x2)

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

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

(x+y+3y+33x+y+3x+yyx+y+2x+2x)

B(:,:,2) = 

(x+y+13y+1313x+y+1x+yxx+73x+22)

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

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

(2x2y1034x+yx+yy+13x+2x+2)

B(:,:,2) = 

(xy131yx13x2)

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

A = [sym('a') sym('b') 1 NaN 2]
A = (ab1NaN2)
B = cumsum(A)
B = (aa+ba+b+1NaNNaN)

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

B = cumsum(A,'omitnan')
B = (aa+ba+b+1a+b+1a+b+3)

入力引数

すべて折りたたむ

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

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

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

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

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

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

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

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

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

データ型: char

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

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

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

データ型: 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 で導入

参考

| | | |