Main Content

cumsum

説明

B = cumsum(A) は、A のサイズが 1 より大きい最初の配列次元の先頭から開始して、A の累積和を返します。

  • A がベクトルの場合、B は、A の累積和が格納された同じサイズのベクトルです。

  • A が行列の場合、B は、A の各列の累積和が格納された同じサイズの行列です。

  • A が多次元配列の場合、B は、A のサイズが 1 より大きい最初の配列次元に沿って累積和が格納された同じサイズの配列です。

  • A が table または timetable の場合、M は、A の各変数の累積和を含む、同じサイズの table または timetable です。 (R2023a 以降)

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

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

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

B = cumsum(___,nanflag) は、ANaN 値を含めるか省略するかを指定します。たとえば、cumsum(A,"omitnan") は各和の計算時に NaN 値を無視します。既定では、cumsumNaN 値を含めます。

すべて折りたたむ

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

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

     1     3     6    10    15

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

     1     4     7
     3     9    15
     6    15    24

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

     1     4     9
     2     6    12

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

A = [true false true; true true false]
A = 2x3 logical array

   1   0   1
   1   1   0

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

B = cumsum(A,2)
B = 2×3

     1     1     2
     1     2     2

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

    22    13     3
    23    13     6
    13    11    10

NaN 値を含む行列を作成します。

A = [3 5 NaN 4; 2 6 NaN 9; 1 3 5 NaN]
A = 3×4

     3     5   NaN     4
     2     6   NaN     9
     1     3     5   NaN

NaN 値を除外して行列の累積和を計算します。先頭に NaN 値が含まれている行列の列では、NaN 以外の値が検出されるまで、累積和は 0 になります。

B = cumsum(A,"omitnan")
B = 3×4

     3     5     0     4
     5    11     0    13
     6    14     5    13

入力引数

すべて折りたたむ

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

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

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

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

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

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

cumsum(A,1) column-wise operation and cumsum(A,2) row-wise operation

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

累積の方向。次の値のいずれかとして指定します。

  • "forward" — 操作次元の 1 から end の方向に演算を行います。

  • "reverse" — 操作次元の end から 1 の方向に演算を行います。

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

  • "includemissing" または "includenan" — 累積和の計算時に ANaN 値を含めます。A の最初の NaN 値が検出されるとすぐに B の要素は NaN になります。"includemissing""includenan" の動作は同じです。

  • "omitmissing" または "omitnan" — 累積和の計算時に ANaN 値を無視します。A の先頭に連続した NaN が含まれている場合、B の対応する要素は 0 です。"omitmissing""omitnan" の動作は同じです。

ヒント

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

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する

参考

| | | | | |