Main Content

cumprod

누적곱(Cumulative Product)

설명

예제

B = cumprod(A)는 크기가 1보다 큰 A의 첫 번째 배열 차원의 시작에서부터 계산하여 A의 누적곱을 반환합니다.

  • A가 벡터이면 BA의 누적곱을 포함하는 동일한 크기의 벡터입니다.

  • A가 행렬이면 BA의 각 열의 누적곱을 포함하는 동일한 크기의 행렬입니다.

  • A가 다차원 배열이면 B는 동일한 크기의 배열이며, A의 차원 중 크기가 1보다 큰 첫 번째 배열 차원을 따라 누적곱을 포함합니다.

  • A가 테이블 또는 타임테이블이면 M은 동일한 크기의 테이블 또는 타임테이블이며, A의 각 변수의 누적곱을 포함합니다. (R2023a 이후)

Alogical형이고 Bdouble형인 경우를 제외하면 B의 클래스는 A의 클래스와 동일합니다.

예제

B = cumprod(A,dim)은 차원 dim 정의에 따라 요소의 누적곱을 반환합니다. 예를 들어, A가 행렬인 경우 cumprod(A,2)A의 행을 따라 누적곱을 반환합니다.

예제

B = cumprod(___,direction)은 위에 열거된 구문에 대해 방향을 지정합니다. 예를 들어, cumprod(A,2,"reverse")는 두 번째 차원의 끝에서 시작 방향으로 작업하여 A의 행 내의 누적곱을 반환합니다.

예제

B = cumprod(___,nanflag)ANaN 값을 포함할지 또는 생략할지 여부를 지정합니다. 예를 들어, cumprod(A,"omitnan")은 각 곱을 계산할 때 NaN 값을 무시합니다. 기본적으로 cumprodNaN 값을 포함합니다.

예제

모두 축소

1부터 5까지 정수의 누적곱을 구합니다. 요소 B(2)A(1)A(2)의 곱이고, B(5)는 요소 A(1)부터 A(5)까지의 곱입니다.

A = 1:5;
B = cumprod(A)
B = 1×5

     1     2     6    24   120

요소가 선형 인덱스에 대응하는 3×3 행렬을 만듭니다.

A = [1 4 7; 2 5 8; 3 6 9]
A = 3×3

     1     4     7
     2     5     8
     3     6     9

A의 열 누적곱을 구합니다. 요소 B(5)A(4)A(5)의 곱이고, B(9)A(7), A(8)A(9)의 곱입니다.

B = cumprod(A)
B = 3×3

     1     4     7
     2    20    56
     6   120   504

요소가 선형 인덱스에 대응하는 2×3 행렬을 만듭니다.

A = [1 3 5; 2 4 6]
A = 2×3

     1     3     5
     2     4     6

A의 행 누적곱을 구합니다. 요소 B(3)A(1)A(3)의 곱이고, B(5)A(1), A(3)A(5)의 곱입니다.

B = cumprod(A,2)
B = 2×3

     1     3    15
     2     8    48

논리값으로 구성된 배열을 만듭니다.

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

   1   0   1
   1   1   0

A의 행 누적곱을 구합니다.

B = cumprod(A,2)
B = 2×3

     1     0     0
     1     1     0

출력값은 double형입니다.

class(B)
ans = 
'double'

1과 10 사이의 임의의 정수로 구성된 3×3 행렬을 만듭니다.

rng default;
A = randi([1,10],3)
A = 3×3

     9    10     3
    10     7     6
     2     1    10

열을 따라 누적곱을 계산합니다. "reverse" 옵션을 지정하여 각 열의 맨 아래에서 맨 위 방향으로 작업하도록 합니다. 결과는 A와 크기가 동일합니다.

B = cumprod(A,"reverse")
B = 3×3

   180    70   180
    20     7    60
     2     1    10

NaN 값이 포함된 행렬을 만듭니다.

A = [3 5 NaN 4; 2 6 NaN 9; 1 3 0 NaN]
A = 3×4

     3     5   NaN     4
     2     6   NaN     9
     1     3     0   NaN

NaN 값을 제외하고 행렬의 누적곱을 구합니다. 선행 NaN 값이 포함된 행렬 열의 경우 NaN이 아닌 값이 발견될 때까지 누적곱은 1이 됩니다.

B = cumprod(A,"omitnan")
B = 3×4

     3     5     1     4
     6    30     1    36
     6    90     0    36

입력 인수

모두 축소

입력 배열로, 벡터, 행렬, 다차원 배열, table형 또는 timetable형으로 지정됩니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | table | timetable
복소수 지원 여부:

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 차원을 지정하지 않을 경우 디폴트 값은 크기가 1보다 큰 첫 번째 배열 차원이 됩니다.

2차원 입력 배열 A가 있다고 가정하겠습니다.

  • cumprod(A,1)A의 열에 있는 연속된 요소에 대해 동작을 수행하고 각 열의 누적곱을 반환합니다.

  • cumprod(A,2)A의 행에 있는 연속된 요소에 대해 동작을 수행하고 각 행의 누적곱을 반환합니다.

cumprod(A,1) column-wise operation and cumprod(A,2) row-wise operation

dimndims(A)보다 큰 경우 cumprodA를 반환합니다.

누적 방향으로, 다음 값 중 하나로 지정됩니다.

  • "forward" — 연산 차원의 1에서 end 방향으로 동작합니다.

  • "reverse" — 연산 차원의 end에서 1 방향으로 동작합니다.

누락값 조건으로, 다음 값 중 하나로 지정됩니다.

  • "includemissing" 또는 "includenan" — 누적곱을 계산할 때 ANaN 값을 포함합니다. A에서 첫 번째 NaN 값이 발견되는 즉시 B의 요소는 NaN이 됩니다. "includemissing""includenan"은 동일하게 동작합니다.

  • "omitmissing" 또는 "omitnan" — 누적곱을 계산할 때 ANaN 값을 무시합니다. A에 연속된 선행 NaN 값이 있는 경우 B의 대응하는 요소는 1입니다. "omitmissing""omitnan"은 동일하게 동작합니다.

  • 많은 누적 함수에서 "reverse" 옵션을 사용하면 입력 배열을 뒤집거나 반사하지 않고도 방향이 있는 계산을 빠르게 수행할 수 있습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | | | |