変形組込み関数 (総称):配列全体のまたは配列の指定された次元のすべての要素の積を返します。
形式
result = PRODUCT (array [, dim] [, mask])
array
(入力) 整数型または実数型の配列。
dim
(省略可能,入力) n を array の次元数として,1 ~ n の範囲の値を持つスカラ整数。
mask
(省略可能,入力) 論理型配列。array と形状適合でなくてはなりません。
結果
結果は,array と同じデータ型の配列またはスカラです。
結果は,dim が省略されるか,array の次元数が 1 である場合にはスカラとなります。
dim が省略された場合,以下の規則が適用されます。
PRODUCT (array) が指定された場合,結果は array のすべての要素の積です。array の大きさがゼロならば,結果は 1 になります。
PRODUCT (array, MASK=mask) が指定された場合,結果は,mask の真の要素に対応する array のすべての要素の積になります。真の要素がなければ,結果は 1 になります。
dim が宣言された場合,以下の規則が適用されます。
array の次元数が 1 ならば,値は PRODUCT (array [,MASK=mask]) となります。
配列の結果の次元数は array よりも 1 だけ少ない値になり,その形状は,array の形状を (d1, d2, ..., dn) として,(d1, d2, ..., ddim-1, ddim+1, ..., dn) となります。
PRODUCT (array, dim [,mask]) の要素 (s1, s2, ..., sdim-1, sdim+1, ..., sn) の値は,PRODUCT (array (s1, s2, ..., sdim-1, :, sdim+1, ..., sn) [,MASK=mask (s1, s2, ..., sdim-1, :, sdim+1, ..., sn)]) と等しくなります。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
例
PRODUCT ((/2, 3, 4/)) は,値 24 (2 * 3 * 4 の積) を返します。PRODUCT ((/2, 3, 4/), DIM=1) は同じ結果を返します。
PRODUCT (C, MASK=C .LT. 0.0) は,C の負の要素の積を返します。
A が配列
[ 1 4 7 ] [ 2 3 5 ]
であるとします。
PRODUCT (A, DIM=1) は,個々の列のすべての要素の積である値 (2, 12, 35) を返します。2 は列 1 の 1 * 2 の積であり,12 は列 2 の 4 * 3 の積です (以下同様)。
PRODUCT (A, DIM=2) は,個々の行のすべての要素の積である値 (28, 30) を返します。28 は行 1 の 1 * 4 * 7 の積であり,30 は列 2 の 2 * 3 * 5 の積です。
array が形状 (2, 2, 2) で,mask が省略され,dim が 1 の場合,結果は以下の値を持つ要素で構成される形状 (2, 2) の配列結果になります。
結果配列要素 | 値 |
---|---|
result(1, 1) | array(1, 1, 1) * array(2, 1, 1) |
result(2, 1) | array(1, 2, 1) * array(2, 2, 1) |
result(1, 2) | array(1, 1, 2) * array(2, 1, 2) |
result(2, 2) | array(1, 2, 2) * array(2, 2, 2) |
以下に他の例を示します。
INTEGER array (2, 3) INTEGER AR1(3), AR2(2) array = RESHAPE((/1, 4, 2, 5, 3, 6/),(/2,3/)) ! array は 1 2 3 ! 4 5 6 です。 AR1 = PRODUCT(array, DIM = 1) ! [ 4 10 18 ] を返します。 AR2 = PRODUCT(array, MASK = array .LT. 6, DIM = 2) ! [ 6 20 ] を返します。 END