ドキュメンテーション

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

prod

説明

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

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

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

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

  • A が多次元配列の場合、prod(A) は、大きさが 1 でない最初の次元に沿って機能し、積の配列を返します。この次元のサイズは 1 に縮小しますが、他のすべての次元のサイズは変化しません。

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

B = prod(A,'all') は、A のすべての要素の積を計算します。この構文は、MATLAB® R2018b 以降で有効です。

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

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

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

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

すべて折りたたむ

要素が線形インデックスに対応している 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 値を除いてその積を計算します。'omitnan' を指定しない場合、prod(A)NaN を返します。

A = [1 3 2 4 NaN 3 NaN 2];
P = prod(A,'omitnan')
P = 144

入力引数

すべて折りたたむ

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

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

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

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

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

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

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

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

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

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

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

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

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

type出力データ型
'default'入力データ型が single でない場合は、double。この場合、出力データ型は single です。
'double'double
'native'入力配列 A と同じデータ型

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

  • 'includenan' — 積の計算には入力の NaN 値が含まれるため、NaN が出力されます。

  • 'omitnan' — 入力の NaN 値を無視します。すべての要素が NaN の場合、prod は 1 を返します。

出力引数

すべて折りたたむ

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

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

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

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

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

  • 引数 type'double' を指定した場合、入力データ型にかかわらず、出力はdouble になります。

  • 引数 type'native' を指定した場合、出力のデータ型は入力と同じになります。

詳細

すべて折りたたむ

最初の大きさが 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 でない次元になります。

拡張機能

参考

| | |

R2006a より前に導入