ドキュメンテーション

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

構文

B = cumsum(A)
B = cumsum(A,dim)
B = cumsum(___,direction)
B = cumsum(___,nanflag)

説明

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

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

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

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

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

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

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

すべて折りたたむ

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

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

     1     3     6    10    15

要素が線形インデックスに対応している 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 = cumsum(A)
B =

     1     4     7
     3     9    15
     6    15    24

要素が線形インデックスに対応している 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 = cumsum(A,2)
B =

     1     4     9
     2     6    12

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

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

  2×3 logical array

   1   0   1
   1   1   0

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

B = cumsum(A,2)
B =

     1     1     2
     1     2     2

出力の型は 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 = cumsum(A,2,'reverse')
B =

    22    13     3
    23    13     6
    13    11    10

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

A = [3 5 NaN 9 0 NaN];
B = cumsum(A)
B =

     3     8   NaN   NaN   NaN   NaN

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

B = cumsum(A,'omitnan')
B =

     3     8     8    17    17    17

入力引数

すべて折りたたむ

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

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

演算の対象の次元。正の整数のスカラーとして指定します。値を指定しない場合、既定値は、サイズが 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 と同じサイズのベクトル、行列または多次元配列として返されます。

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 より前に導入

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