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
는 입력값 A
가 single
형이면 계산 수행 후 B
를 single
형으로 반환합니다. 그 외 모든 숫자 데이터형과 논리형 데이터에 대해서 prod
는 B
를 계산 수행 후 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,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
값이 포함된 행렬 열의 경우 prod
는 NaN
이 아닌 요소에 대해 계산을 수행합니다. 값이 모두 NaN
인 행렬 열의 경우 곱은 1이 됩니다.
B = prod(A,"omitnan")
B = 1×4
1.7700 -0.0017 1.0000 -0.5605
입력 인수
A
— 입력 배열
벡터 | 행렬 | 다차원 배열 | 테이블 | 타임테이블
입력 배열로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다.
데이터형: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| table
| timetable
복소수 지원 여부: 예
dim
— 연산을 수행할 차원
양의 정수 스칼라
연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 차원을 지정하지 않을 경우 디폴트 값은 크기가 1보다 큰 첫 번째 배열 차원이 됩니다.
차원 dim
은 길이가 1
로 줄어드는 차원을 나타냅니다. size(B,dim)
은 1
이 되고, 다른 모든 차원의 크기는 변경되지 않습니다.
2차원 입력 배열 A
가 있다고 가정하겠습니다.
dim = 1
인 경우prod(A,1)
은 각 열에 있는 요소의 곱이 포함된 행 벡터를 반환합니다.dim = 2
인 경우prod(A,2)
는 각 행에 있는 요소의 곱이 포함된 열 벡터를 반환합니다.
dim
이 ndims(A)
보다 큰 경우 prod
은 A
를 반환합니다.
데이터형: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
vecdim
— 차원의 벡터
양의 정수로 구성된 벡터
차원의 벡터로, 양의 정수로 구성된 벡터로 지정됩니다. 각 요소는 입력 배열의 차원을 나타냅니다. 지정된 연산 차원의 출력값의 길이는 1이고, 다른 모든 차원의 길이는 변경되지 않습니다.
2×3×3 입력 배열 A
가 있다고 가정하겠습니다. 이때 prod(A,[1 2])
는 A
의 각 페이지의 곱을 요소로 갖는 1×1×3 배열을 반환합니다.
데이터형: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
outtype
— 출력값 클래스
"default"
(디폴트 값) | "double"
| "native"
출력값 클래스로, "default"
, "double"
또는 "native"
로 지정되며 출력값 B
의 데이터형을 정의합니다.
outtype | 출력 데이터형 |
---|---|
"default" | double 형. 단, 입력 데이터형이 single 형, table 형 또는 timetable 형이 아니어야 합니다. 입력 데이터형이 이 중 하나일 때 출력 데이터형은 각각 single 형 또는 table 형이 됩니다. |
"double" | double 형. 단, 입력 데이터형이 table 형 또는 timetable 형이 아니어야 합니다. 이 경우 출력 데이터형은 table 형이 됩니다. |
"native" | 입력 배열 A 와 동일한 데이터형. 단, 입력 데이터형이 timetable 형이 아니어야 합니다. 이 경우 출력 데이터형은 table 형이 됩니다. |
nanflag
— 누락값 조건
"includemissing"
(디폴트 값) | "includenan"
| "omitmissing"
| "omitnan"
누락값 조건으로, 다음 값 중 하나로 지정됩니다.
"includemissing"
또는"includenan"
— 곱을 계산할 때A
의NaN
값을 포함합니다. 연산 차원의 요소가 하나라도NaN
인 경우 이에 대응하는B
의 요소도NaN
입니다."includemissing"
과"includenan"
은 동일하게 동작합니다."omitmissing"
또는"omitnan"
—A
의NaN
값을 무시하고, 더 적은 수의 점을 대상으로 곱을 계산합니다. 연산 차원의 모든 요소가NaN
인 경우 이에 대응하는B
의 요소는 1입니다."omitmissing"
과"omitnan"
은 동일하게 동작합니다.
출력 인수
B
— 곱 배열
스칼라 | 벡터 | 행렬 | 다차원 배열 | 테이블
곱 배열로, 스칼라, 벡터, 행렬, 다차원 배열 또는 테이블로 반환됩니다.
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) 차원입니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 tall형 배열을 완전히 지원합니다. 자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
dim
을 제공할 경우 그 값은 상수여야 합니다.Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder) 항목을 참조하십시오.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
dim
을 제공할 경우 그 값은 상수여야 합니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
사용법 관련 참고 및 제한 사항:
"native"
옵션에서 64비트 정수는 지원되지 않습니다.prod
연산의 곱의 순서는 정의되지 않습니다. 따라서 GPU 배열에 대한prod
연산은 대응되는 숫자형 배열에 대한prod
연산과 동일한 답을 반환하지 않을 수 있습니다.
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
사용법 관련 참고 및 제한 사항:
prod
연산의 곱의 순서는 정의되지 않습니다. 따라서 분산 배열에 대한prod
연산은 대응되는 숫자형 배열에 대한prod
연산과 동일한 답을 반환하지 않을 수 있습니다.A
가 부호 있는 정수형이고 그 곱이 기본적으로(natively) 누적되는 경우 이 차이가 커질 수 있습니다.
자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨R2023a: 누락값 조건 지정
곱을 구할 때 "includemissing"
또는 "omitmissing"
옵션을 사용하여 입력 배열의 누락값을 포함하거나 생략합니다. 이러한 옵션은 각각 "includenan"
및 "omitnan"
옵션과 동일하게 동작합니다.
R2023a: 테이블 및 타임테이블에 대해 직접 계산 수행
prod
함수는 테이블이나 타임테이블 내의 변수에 액세스하기 위한 인덱싱 없이 이러한 모든 변수에 대해 계산을 수행할 수 있습니다. 모든 변수는 계산을 지원하는 데이터형을 가져야 합니다. 자세한 내용은 Direct Calculations on Tables and Timetables 항목을 참조하십시오.
R2018b: 여러 차원에 대해 연산 수행
한 번에 입력 배열의 여러 차원에 대해 연산을 수행합니다. 연산 차원으로 구성된 벡터를 지정하거나, 모든 배열 차원에 대해 연산을 수행하도록 "all"
옵션을 지정하십시오.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 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)