Main Content

prod

배열 요소의 곱

설명

예제

B = prod(A)A의 배열 요소의 곱을 반환합니다.

  • A가 벡터인 경우 prod(A)는 요소의 곱을 반환합니다.

  • A가 비어 있지 않은 행렬인 경우 prod(A)A의 열을 벡터로 취급하고 각 열의 곱으로 구성된 행 벡터를 반환합니다.

  • A가 빈 0×0 행렬인 경우 prod(A)1을 반환합니다.

  • A가 다차원 배열인 경우 prod(A)첫 번째 비한원소(Nonsingleton) 차원을 따라 동작을 수행하고 곱의 배열을 반환합니다. 이 차원에서 B의 크기는 1로 줄어들고, 다른 모든 차원의 크기는 A와 동일하게 유지됩니다.

  • A가 테이블 또는 타임테이블인 경우 prod(A)는 각 변수의 곱을 포함하는 한 행 크기의 테이블을 반환합니다. (R2023a 이후)

prod는 입력값 Asingle형이면 계산 수행 후 Bsingle형으로 반환합니다. 그 외 모든 숫자 데이터형과 논리형 데이터에 대해서 prodB를 계산 수행 후 double형으로 반환합니다.

예제

B = prod(A,"all")A의 모든 요소의 곱을 반환합니다.

예제

B = prod(A,dim)은 차원 dim을 따라 곱을 반환합니다. 예를 들어, A가 행렬인 경우 prod(A,2)는 각 행의 곱이 포함된 열 벡터입니다.

예제

B = prod(A,vecdim)은 벡터 vecdim에 지정된 차원을 기준으로 곱을 반환합니다. 예를 들어, A가 행렬인 경우 prod(A,[1 2])는 차원 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이고 두 번째 차원 길이는 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

각 행 요소의 곱을 구하고 두 번째 차원의 길이를 1로 줄입니다. 첫 번째 차원 길이는 size(A,1)과 일치하고 두 번째 차원 길이는 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])A의 각 페이지의 곱을 요소로 갖는 1×1×3 배열을 반환합니다.

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형. 단, 입력 데이터형이 single형, table형 또는 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"은 동일하게 동작합니다.

출력 인수

모두 축소

곱 배열로, 스칼라, 벡터, 행렬, 다차원 배열 또는 테이블로 반환됩니다.

B 클래스는 다음과 같습니다.

  • outtype 인수가 "default"를 지정하거나 사용되지 않는 경우,

    • 입력값이 single형, table형 또는 timetable형이 아니면 출력값이 double형입니다.

    • 입력값이 single이면 출력값이 single입니다.

    • 입력값이 table형 또는 timetable형이면 출력값이 table형입니다.

  • outtype 인수가 "double"을 지정하면 입력값이 table형 또는 timetable형이 아닌 경우, 입력 데이터형에 상관없이 출력값이 double형입니다.

  • outtype 인수가 "native"를 지정하면 입력값이 timetable형이 아닌 경우, 출력값이 입력값과 같은 데이터형입니다. 입력값이 timetable형인 경우 출력값은 table형이 됩니다.

세부 정보

모두 축소

첫 번째 비한원소(Nonsingleton) 차원

첫 번째 비한원소(Nonsingleton) 차원은 배열에서 크기가 1이 아닌 첫 번째 차원입니다.

예를 들면 다음과 같습니다.

  • X가 1×n 행 벡터인 경우 두 번째 차원은 X의 첫 번째 비한원소(Nonsingleton) 차원입니다.

  • X가 1×0×n 빈 배열인 경우 두 번째 차원은 X의 첫 번째 비한원소(Nonsingleton) 차원입니다.

  • X가 1×1×3 배열인 경우 세 번째 차원은 X의 첫 번째 비한원소(Nonsingleton) 차원입니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | |