Main Content

prod

説明

B = prod(A)A の配列要素の積を返します。

  • A がベクトルの場合、prod(A) は要素の積を返します。

  • A が空でない行列の場合、prod(A) は、A の列をベクトルとして取り扱い、各列の積を行ベクトルとして返します。

  • A が空の 0 行 0 列の場合、prod(A)1 を返します。

  • A が多次元配列の場合、prod(A) は、大きさが 1 でない最初の次元に沿って機能し、積の配列を返します。この次元における B のサイズは 1 に減りますが、他のすべての次元のサイズは A と同じままです。

  • A が table または timetable の場合、prod(A) は、各変数の積を含む 1 行の table を返します。 (R2023a 以降)

入力 Asingle の場合、prodB を計算し、single として返します。他のすべての数値データ型と logical データ型の場合、prod は計算後、Bdouble として返します。

B = prod(A,"all") は、A のすべての要素の積を返します。

B = prod(A,dim) は、次元 dim に沿って積を返します。たとえば、A が行列の場合、prod(A,2) は、各行の積を含んでいる列ベクトルになります。

B = prod(A,vecdim) は、ベクトル vecdim で指定した次元に基づいて積を返します。たとえば、A が行列の場合、行列内の各要素は次元 1 と次元 2 で定義された配列スライスに含まれるため、prod(A,[1 2])A のすべての要素の積を返します。

B = prod(___,outtype) は前述の構文の入力引数のいずれかを使って、outtype で指定されたクラスの配列を返します。outtype"double""native" または "default" のいずれかになります。

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

すべて折りたたむ

要素が線形インデックスに対応している 3 行 3 列の配列を作成します。

A=[1:3:7;2:3:8;3:3:9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

各列の要素の積を求めます。最初の次元の長さは 1 で、2 番目の次元の長さは size(A,2) に一致します。

B = prod(A)
B = 1×3

     6   120   504

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

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

   1   0
   1   1

各列の要素の積を求めます。

B = prod(A)
B = 1×2

     1     0

出力の型は double です。

class(B)
ans = 
'double'

要素が線形インデックスに対応している 3 行 3 列の配列を作成します。

A=[1:3:7;2:3:8;3:3:9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

各行の要素の積を求め、2 番目の次元の長さを 1 に縮小します。最初の次元の長さは size(A,1) に一致し、2 番目の次元の長さは 1 になります。

dim = 2;
B = prod(A,dim)
B = 3×1

    28
    80
   162

3 次元配列を作成し、データのページ (行と列) ごとの積を計算します。

A(:,:,1) = [2 4; -2 1];
A(:,:,2) = [1 2; -5 3];
A(:,:,3) = [4 4; 1 -3];
B1 = prod(A,[1 2])
B1 = 
B1(:,:,1) =

   -16


B1(:,:,2) =

   -30


B1(:,:,3) =

   -48

配列のすべての次元の積を計算するには、ベクトルの次元引数で各次元を指定するか、"all" オプションを使用します。

B2 = prod(A,[1 2 3])
B2 = -23040
Ball = prod(A,"all")
Ball = -23040

単精度の値で構成される 3 行 3 列の配列を作成します。

A = single([1200 1500 1800; 1300 1600 1900; 1400 1700 2000])
A = 3x3 single matrix

        1200        1500        1800
        1300        1600        1900
        1400        1700        2000

倍精度で乗算することで、各行の要素の積を求めます。

B = prod(A,2,"double")
B = 3×1
109 ×

    3.2400
    3.9520
    4.7600

出力は倍精度です。

class(B)
ans = 
'double'

8 ビット符号なしの整数の 3 行 3 列配列を作成します。

A = uint8([1:3:7;2:3:8;3:3:9])
A = 3x3 uint8 matrix

   1   4   7
   2   5   8
   3   6   9

uint8 で各列の要素の積をネイティブに求めます。

B = prod(A,"native")
B = 1x3 uint8 row vector

     6   120   255

その結果、8 ビット符号なしの整数の配列が得られます。

class(B)
ans = 
'uint8'

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

A = [1.77 -0.005 NaN -2.95; NaN 0.34 NaN 0.19]
A = 2×4

    1.7700   -0.0050       NaN   -2.9500
       NaN    0.3400       NaN    0.1900

NaN 値を除外して行列の積を計算します。NaN 値が含まれている行列の列では、prodNaN 以外の要素で計算します。すべて NaN 値の行列の列では、積は 1 です。

B = prod(A,"omitnan")
B = 1×4

    1.7700   -0.0017    1.0000   -0.5605

入力引数

すべて折りたたむ

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

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

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

次元 dim は、長さが 1 に縮小した次元を示します。size(B,dim)1 ですが、他のすべての次元のサイズは変化しません。

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

  • dim = 1 の場合、prod(A,1) は、各列の要素の積を含む行ベクトルを返します。

    prod(A,1) column-wise computation.

  • dim = 2 の場合、prod(A,2) は、各行の要素の積を含む列ベクトルを返します。

    prod(A,2) row-wise computation.

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

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

次元のベクトル。正の整数のベクトルとして指定します。各要素は入力配列の次元を表します。指定された操作次元の出力の長さは 1 で、その他は同じままです。

2×3×3 の入力配列 A を考えます。この場合、prod(A,[1 2]) は 1×1×3 の配列を返します。この配列の要素は A の各ページの積です。

prod(A,[1 2]) collapses the pages of a 2-by-3-by-3 array into a 1-by-1-by-3 array.

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力クラス。"default""double" または "native" として指定され、これによって出力 B のデータ型が定義されます。

outtype出力データ型
"default"double。ただし、入力データ型が singletable、または timetable の場合は、出力データ型はそれぞれ single または table です。
"double"double。ただし、入力データ型が table または timetable の場合は、出力データ型は table です。
"native"入力配列 A と同じデータ型。ただし、入力データ型が timetable の場合は、出力データ型は table です。

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

  • "includemissing" または "includenan" — 積の計算時に ANaN 値を含めます。操作次元内のいずれかの要素が NaN の場合、B の対応する要素は NaN です。"includemissing""includenan" の動作は同じです。

  • "omitmissing" または "omitnan"ANaN 値を無視し、点の数を減らして積を計算します。操作次元内のすべての要素が NaN の場合、B の対応する要素は 1 です。"omitmissing""omitnan" の動作は同じです。

出力引数

すべて折りたたむ

積配列。スカラー、ベクトル、行列、多次元配列、または table として返されます。

B のクラスは次のとおりです。

  • outtype 引数に "default" を指定するか、この引数を使用せず、

    • 入力が singletable、または timetable ではない場合、出力は double になります。

    • 入力が single の場合、出力は single になります。

    • 入力が table または timetable の場合、出力は table になります。

  • 引数 outtype"double" を指定した場合、入力が table または timetable でない限り、入力データ型にかかわらず、出力は double になります。

  • 引数 outtype"native" を指定した場合、出力のデータ型は入力と同じになります。ただし、入力が timetable の場合、出力は table になります。

詳細

すべて折りたたむ

大きさが 1 でない最初の次元

大きさが 1 でない最初の次元 (nonsingleton dimension) は、サイズが 1 に等しくない配列の最初の次元を表します。

以下に例を示します。

  • X が 1 行 n 列の行ベクトルの場合、2 番目の次元は X の大きさが 1 でない最初の次元になります。

  • X が 1×0×n の空配列の場合、2 番目の次元は X の大きさが 1 でない最初の次元になります。

  • X が 1×1×3 の配列の場合、3 番目の次元は X の大きさが 1 でない最初の次元になります。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する

参考

| | |