このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
cumprod
説明
は、B
= cumprod(A
)A
のサイズが 1 でない最初の配列次元の先頭から開始して、A
の累積積を返します。
A
がベクトルの場合、cumprod(A)
は、A
の要素の累積積が含まれるベクトルを返します。A
が行列の場合、cumprod(A)
は、A
の各列の累積積を含む行列を返します。A
が多次元配列の場合、関数cumprod(A)
は、最初の大きさが 1 でない次元に沿って機能します。
例
ベクトルの累積積
1
から 5
までの整数の累積積を求めます。要素 B(2)
は A(1)
と A(2)
の積です。B(5)
は A(1)
から A(5)
までの要素の積です。
A = 1:5; B = cumprod(A)
B = 1×5
1 2 6 24 120
行列内の各列の累積積
要素が線形インデックスに対応している 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 = cumprod(A)
B = 3×3
1 4 7
2 20 56
6 120 504
行列内の各行の累積積
要素が線形インデックスに対応している 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 = cumprod(A,2)
B = 2×3
1 3 15
2 8 48
double の出力をもつ論理入力
論理値の配列を作成します。
A = [true false true; true true false]
A = 2x3 logical array
1 0 1
1 1 0
A
の行の累積積を求めます。
B = cumprod(A,2)
B = 2×3
1 0 0
1 1 0
出力の型は 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 = cumprod(A,'reverse')
B = 3×3
180 70 180
20 7 60
2 1 10
NaN
値を含むベクトル
NaN
値を含むベクトルを作成し、累積積を計算します。既定では、cumprod
は NaN
値を含めます。NaN
値を計算に含めた場合、A
内の最初の NaN
値が検出されるとすぐに、累積積は NaN
になります。
A = [1 3 NaN 2 4 NaN]; B = cumprod(A)
B = 1×6
1 3 NaN NaN NaN NaN
'omitnan'
オプションを使用して、累積積の計算で NaN
値を無視します。
B = cumprod(A,'omitnan')
B = 1×6
1 3 3 6 24 24
入力引数
A
— 入力配列
ベクトル | 行列 | 多次元配列
入力配列。ベクトル、行列または多次元配列として指定します。
データ型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
複素数のサポート: あり
dim
— 演算の対象の次元
正の整数スカラー
演算の対象の次元。正の整数のスカラーとして指定します。次元を指定しない場合、既定値はサイズが 1 より大きい最初の配列次元です。
2 次元の入力配列 A
について考えます。
cumprod(A,1)
はA
の各列の連続する要素を処理し、各列の累積積を返します。cumprod(A,2)
はA
の各行の連続する要素を処理し、各行の累積積を返します。
dim
が ndims(A)
より大きい場合、cumprod
は A
を返します。
direction
— 累積の方向
'forward'
(既定値) | 'reverse'
累積の方向。'forward'
(既定値) または 'reverse'
として指定します。
'forward'
は、アクティブな次元の1
からend
の方向に演算を行います。'reverse'
は、アクティブな次元のend
から1
の方向に演算を行います。
nanflag
— NaN
の条件
'includenan'
(既定値) | 'omitnan'
NaN
の条件。次の値のいずれかとして指定します。
'includenan'
— 個々の積の計算時に入力のNaN
値を含み、結果としてNaN
値が出力されます。'omitnan'
— 入力のNaN
値を無視します。NaN
値を含む要素の積は、すべての非NaN
要素の積になります。すべての要素がNaN
の場合、cumprod
は 1 を返します。
出力引数
B
— 累積積の配列
ベクトル | 行列 | 多次元配列
累積積の配列。入力配列 A
と同じサイズのベクトル、行列または多次元配列として返されます。
B
のクラスは A
のクラスと同じです。ただし、A
が logical
の場合、B
は double
です。
詳細
最初の大きさが 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'
オプションをサポートしています。このオプションを使用すると、入力配列の反転や鏡映を行わなくても、逆方向の計算を簡単に実行できます。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
論理入力はサポートされていません。最初に入力を
double
にキャストします。コード生成では、この関数のスパース行列入力はサポートされません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意事項および制限事項:
論理入力はサポートされていません。最初に入力を
double
にキャストします。コード生成では、この関数のスパース行列入力はサポートされません。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
nanflag
引数はサポートされていません。comprod
演算内で積の次数は定義されていません。そのためgpuArray
のcumprod
演算は、対応する MATLAB 数値配列のcumprod
演算と厳密に同じ値を返さないことがあります。A
が符号付き整数型の場合、この差が大きくなることがあります。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
使用上の注意事項および制限事項:
comprod
演算内で積の次数は定義されていません。そのため、分散配列のcumprod
演算は、対応する MATLAB 数値配列のcumprod
演算と厳密に同じ値を返さないことがあります。A
が符号付き整数型の場合、この差が大きくなることがあります。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)